Usuń wszystkie zadania `at`


32

Wiem, że aby usunąć zaplanowane atzadanie, muszę z niego skorzystać atrm "numjob1 numjob2", ale czy istnieje prosty sposób, aby to zrobić dla wszystkich zadań?

Odpowiedzi:


31

Możesz uruchomić to polecenie, aby usunąć wszystkie zadania w atq

 for i in `atq | awk '{print $1}'`;do atrm $i;done

2
odmiana tej odpowiedziat -l | awk '{printf "%s ", $1}' | xargs atrm
— Sergiy Kolodyazhnyy

10

Możesz zrobić coś takiego:

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

W FreeBSD cut -f3pierwszą kolumną jest data
— David Jashi



1

Oto moja wersja xargs, która omija nawiasy klamrowe i jest, mam nadzieję, intuicyjna:

atq | cut -f 1 | xargs atrm

Możesz także grepować określone zadania według datownika / identyfikatora użytkownika, a następnie je usuwać:

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

0

Miałem ponad 58 000 zadań w atd (ktoś zrestartował serwer iz jakiegoś powodu usługa atd nie została uruchomiona). Usuwanie zadań za pomocą atrm jest bardzo bolesne w przypadku bardzo wysokiej kolejki.

Zatrzymałem atd i usunąłem wszystkie katalogi z / var / spool / atjobs i pliki z / var / spool / atspool . Dla mnie to zadziałało.

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

Nigdy nie mówisz nic o atdponownym uruchomieniu i czy to się udało, ani nie wspominasz, dla jakiego Uniksa byłoby to odpowiednie rozwiązanie. Jak upewniłeś się, że zadania innych użytkowników nie zostały usunięte?
— Kusalananda

Dobrze! Przepraszam! Musisz rozpocząć atd po zakończeniu procesu. Moje rozwiązanie dotyczy „SUSE Linux Enterprise Server 12”. Ale myślę, że można go użyć w innych dystrybucjach. Informacje o katalogach znalazłem w „man”. W mojej sytuacji tylko root używa atd, więc usunięcie plików było bezpieczne.
— Felipe
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.