Видаліть усі завдання "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.