Удалить все `at` вакансии


32

Я знаю, что для удаления запланированной atработы мне нужно пользоваться atrm "numjob1 numjob2", но есть ли простой способ сделать это для всех работ?

Ответы:



10

Вы могли бы сделать что-то вроде этого:

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

Во FreeBSD это cut -f3первая колонка с датой
David Jashi



1

Вот моя версия xargs, которая избегает скобок и, надеюсь, интуитивно понятна:

atq | cut -f 1 | xargs atrm

Вы также можете выполнить поиск определенных заданий по метке времени / идентификатору пользователя и затем удалить их:

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

0

У меня было более 58 тыс. Заданий в atd (кто-то перезагрузил сервер и по какой-то причине служба atd не запустилась). Удаление заданий с использованием atrm очень болезненно для очень высокой очереди.

Я остановил atd и удалил все каталоги из / var / spool / atjobs и файлы из / var / spool / atspool . Для меня это сработало.

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

Вы никогда не говорите ничего о запуске atdснова, и о том, был ли это успешным, и не упоминаете, для чего Unix это было бы адекватным решением. Как вы убедились, что задания других пользователей не были удалены?
Кусалананда

Хорошо! Сожалею! Нужно запустить atd после процесса. Мое решение для "SUSE Linux Enterprise Server 12". Но я думаю, что его можно использовать в других дистрибутивах. Я нашел информацию о каталогах в "человеке". В моей ситуации только root использует atd, тогда удаление файлов было безопасным.
Фелипе
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.