ลบงาน `at` ทั้งหมด


32

ฉันรู้ว่าการลบatงานที่กำหนดเวลาที่ฉันต้องใช้atrm "numjob1 numjob2"แต่มีวิธีที่ง่ายในการทำเช่นนั้นสำหรับงานทั้งหมดหรือไม่

คำตอบ:


31

คุณสามารถเรียกใช้คำสั่งนี้เพื่อลบงานทั้งหมดที่ atq

 for i in `atq | awk '{print $1}'`;do atrm $i;done

2
ความหลากหลายของคำตอบนี้at -l | awk '{printf "%s ", $1}' | xargs atrm
Sergiy Kolodyazhnyy




1

นี่คือเวอร์ชั่น xargs ของฉันที่หลีกเลี่ยงการจัดฟันและหวังว่าจะหยั่งรู้:

atq | cut -f 1 | xargs atrm

นอกจากนี้คุณยังสามารถ grep งานที่เฉพาะเจาะจงโดยการประทับเวลา / userid แล้วลบ:

atq | grep "2018-10-22 16:" | cut -f 1 | xargs atrm

0

ฉันมีงานมากกว่า 58k ใน atd (มีคนรีบูทเซิร์ฟเวอร์และไม่ได้เริ่มบริการ atd ด้วยเหตุผลบางอย่าง) การลบงานที่ใช้ atrm นั้นเจ็บปวดมากสำหรับคิวที่สูงมาก

ฉันหยุด ATD และลบ dirs จากทั้งหมด/ var / spool / atjobsและไฟล์จาก/ var / spool / atspool สำหรับฉันมันใช้งานได้

rm -rf /var/spool/atjobs/* ; rm /var/spool/atspool/*

คุณไม่เคยพูดอะไรเกี่ยวกับการเริ่มต้นatdอีกครั้งและไม่ว่าจะประสบความสำเร็จหรือไม่คุณพูดถึงสิ่งที่ Unix นี้จะเป็นทางออกที่เพียงพอสำหรับ คุณแน่ใจได้อย่างไรว่าไม่ลบงานของผู้ใช้คนอื่น?
Kusalananda

ตกลง! ขออภัย! ต้องเริ่มต้น atd หลังจากกระบวนการ โซลูชันของฉันสำหรับ "SUSE Linux Enterprise Server 12" แต่ฉันคิดว่ามันสามารถใช้ในการแจกแจงอื่น ๆ ฉันพบข้อมูลไดเรกทอรีใน "man" ในสถานการณ์ของฉันมีเพียง root เท่านั้นที่ใช้ atd จากนั้นการลบไฟล์ก็ปลอดภัย
เฟลิเป้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.