Удалить все `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.