ฉันรู้ว่าการลบat
งานที่กำหนดเวลาที่ฉันต้องใช้atrm "numjob1 numjob2"
แต่มีวิธีที่ง่ายในการทำเช่นนั้นสำหรับงานทั้งหมดหรือไม่
ฉันรู้ว่าการลบat
งานที่กำหนดเวลาที่ฉันต้องใช้atrm "numjob1 numjob2"
แต่มีวิธีที่ง่ายในการทำเช่นนั้นสำหรับงานทั้งหมดหรือไม่
คำตอบ:
คุณสามารถเรียกใช้คำสั่งนี้เพื่อลบงานทั้งหมดที่ atq
for i in `atq | awk '{print $1}'`;do atrm $i;done
คุณสามารถทำสิ่งนี้:
for i in $(atq | cut -f 1); do atrm $i; done
cut -f3
คอลัมน์แรกคือวันที่
ดูเหมือนว่าฉันจะเป็นบรรทัดสั้น ๆ :
atrm $(atq | cut -f1)
สำหรับระบบ AIX 6 เพิ่มเติมที่คุณสามารถทำได้:
atrm -
นี่คือเวอร์ชั่น xargs ของฉันที่หลีกเลี่ยงการจัดฟันและหวังว่าจะหยั่งรู้:
atq | cut -f 1 | xargs atrm
นอกจากนี้คุณยังสามารถ grep งานที่เฉพาะเจาะจงโดยการประทับเวลา / userid แล้วลบ:
atq | grep "2018-10-22 16:" | cut -f 1 | xargs atrm
ฉันมีงานมากกว่า 58k ใน atd (มีคนรีบูทเซิร์ฟเวอร์และไม่ได้เริ่มบริการ atd ด้วยเหตุผลบางอย่าง) การลบงานที่ใช้ atrm นั้นเจ็บปวดมากสำหรับคิวที่สูงมาก
ฉันหยุด ATD และลบ dirs จากทั้งหมด/ var / spool / atjobsและไฟล์จาก/ var / spool / atspool สำหรับฉันมันใช้งานได้
rm -rf /var/spool/atjobs/* ; rm /var/spool/atspool/*
atd
อีกครั้งและไม่ว่าจะประสบความสำเร็จหรือไม่คุณพูดถึงสิ่งที่ Unix นี้จะเป็นทางออกที่เพียงพอสำหรับ คุณแน่ใจได้อย่างไรว่าไม่ลบงานของผู้ใช้คนอื่น?
at -l | awk '{printf "%s ", $1}' | xargs atrm