Linux auf Befehl über Neustarts hinweg beständig?

9

Sind Jobs mit "at" über Neustarts hinweg dauerhaft geplant? Weiß jemand, wie die Jobs ohne Zugriff auf die entsprechenden Spool-Verzeichnisse gesichert werden können?

Ich möchte von jetzt an bis zu einem Jahr (dh 1 Woche, 1 Monat, 6 Monate) in bestimmten Intervallen eine E-Mail senden. Dies scheint also ein gutes Tool zu sein. Vielleicht gibt es ein besseres?

Kyle Brandt
quelle

Antworten:

9

Ja, sie sind über Neustarts hinweg dauerhaft (sie sind nur Dateien in einer Spool).

Wenn Sie Zugriff auf sie haben, haben Sie als normaler Benutzer keinen Zugriff auf die Dateien, können jedoch ein System zum Sichern dieser Dateien erstellen. Vielleicht so etwas:

MYAT=~/atjobs

/bin/rm -rf $MYAT/*

at -l >$MYAT/JOBS
for j in `cat $MYAT/JOBS | cut -f1`
do
  at -c $j >$MYAT/$i
done

Wenn Sie den Job später neu laden mussten:

for j in `cat $MYAT/JOBS | cut -f1`
do
  # make sure the job isn't defined
  atrm $j
  # reload it from the file
  at -f $MYAT/$j `grep ^$j $MYAT/JOBS | awk '{ print $3, $2 }'`
done

(Dies ist alles meistens ungetestet. Die grundlegenden Befehle sind richtig, aber es gibt sicher irgendwo einen Fehler in der Logik)

Trotzdem bin ich mir nicht sicher, ob ich es für die von Ihnen beschriebene Aufgabe verwenden würde. Ich würde wahrscheinlich ein bereits vorhandenes Kalendersystem verwenden. Andernfalls würde ich einen Cron-Job verwenden, der täglich ausgeführt wird und eine Datei überprüft, um festzustellen, ob Nachrichten gesendet werden müssen. Viel tragbarer als bei der Arbeit und viel wahrscheinlicher, wenn Sie die Maschine wechseln ...

jj33
quelle
Ich sehe, wie das die Jobs sichert, aber wie würde ich all diese Jobs bei Bedarf neu laden?
Kyle Brandt
3

Wenn Sie einen Job mit at planen, ist der Job auch dann noch geplant, wenn ein Neustart durchgeführt wird (diese werden in / var / spool / cron / atjobs gespeichert).

Herzlich,

anapivirtua
quelle
0

Ich habe den Befehl at nicht oft verwendet, aber ich habe cron verwendet, um auszuführende Aufgaben zu planen, und er bleibt über Neustarts hinweg bestehen. cron hat in den letzten fünfzehn Jahren für mich gearbeitet.

Wenn ein Befehl einmal täglich ausgeführt werden muss und dann einmal ausgeführt werden muss, selbst wenn das System ausfällt, können Sie anacron verwenden .

Shapr
quelle
Ich denke nicht, dass cron wirklich gut dafür ist, es sei denn, ich benutze es wie jj33 angegeben, weil ich nicht in regelmäßigen Abständen etwas ausführen möchte. Wenn ich zum Beispiel plane, möchte sogar AI, dass Ereignis A in einem Monat ausgeführt wird, aber nicht jeden Monat.
Kyle Brandt