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.