Видаліть усі завдання "at"


32

Я знаю, що для видалення запланованої atроботи я повинен використовувати atrm "numjob1 numjob2", але чи є простий спосіб зробити це для всіх робіт?

Відповіді:



10

Ви можете зробити щось подібне:

for i in $(atq | cut -f 1); do atrm $i; done

У FreeBSD це cut -f3перша колонка дата
Девід Яші



1

Ось моя версія xargs, яка уникає дужок і, сподіваємось, інтуїтивно зрозуміла:

atq | cut -f 1 | xargs atrm

Ви також можете зібрати певні завдання за допомогою часової позначки / 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". Але я думаю, це може використовуватись і в інших дистрибутивах. Я знайшов інформацію каталогів у «людині». У моїй ситуації лише корінь використовує atd, тоді видалення файлів було безпечним.
Феліпе
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.