Entfernen Sie alle at-Jobs

32

Ich weiß, dass ich einen geplanten atJob entfernen muss atrm "numjob1 numjob2", aber gibt es eine einfache Möglichkeit, dies für alle Jobs zu tun?

robob
quelle

Antworten:

31

Sie können diesen Befehl ausführen, um alle Jobs auf dem atq zu entfernen

 for i in `atq | awk '{print $1}'`;do atrm $i;done
pradeepchhetri
quelle
2
Variation dieser Antwortat -l | awk '{printf "%s ", $1}' | xargs atrm
Sergiy Kolodyazhnyy
10

Sie könnten so etwas tun:

for i in $(atq | cut -f 1); do atrm $i; done
DaveEmme
quelle
In FreeBSD ist die cut -f3erste Spalte das Datum
David Jashi
7

Das scheint mir eine kurze Zeile zu sein:

atrm $(atq | cut -f1)
user78969
quelle
1

Hier ist meine xargs-Version, die Klammern vermeidet und hoffentlich intuitiv ist:

atq | cut -f 1 | xargs atrm

Sie können bestimmte Jobs auch nach Zeitstempel / Benutzer-ID sortieren und dann entfernen:

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

Ich hatte mehr als 58.000 Jobs im ATD (jemand hat den Server neu gestartet und aus irgendeinem Grund wurde der ATD-Dienst nicht gestartet). Das Entfernen der Jobs mit atrm ist bei sehr hohen Warteschlangen sehr schmerzhaft.

Ich habe atd gestoppt und alle Verzeichnisse aus / var / spool / atjobs und Dateien aus / var / spool / atspool gelöscht . Bei mir hat es geklappt.

rm -rf /var/spool/atjobs/* ; rm /var/spool/atspool/*
Felipe
quelle
Sie sagen nie etwas über das atderneute Starten , und ob das erfolgreich war, noch erwähnen Sie, für welches Unix dies eine adäquate Lösung wäre. Wie haben Sie sichergestellt, dass die Jobs anderer Benutzer nicht gelöscht wurden?
Kusalananda
Okay! Es tut uns leid! Müssen nach dem Prozess atd starten. Meine Lösung ist für "SUSE Linux Enterprise Server 12". Aber ich denke, es kann in anderen Distributionen verwendet werden. Ich fand die Informationen von Verzeichnissen in "Mann". In meiner Situation verwendet nur root atd. Das Entfernen der Dateien war dann sicher.
Felipe