Was ist Anacron und wie unterscheidet es sich von Cron?
Anacron wird verwendet, um Befehle regelmäßig mit einer in Tagen angegebenen Häufigkeit auszuführen. Im Gegensatz zu cron geht es nicht davon aus, dass die Maschine kontinuierlich läuft. Daher kann es auf Maschinen verwendet werden, die nicht 24 Stunden am Tag laufen, um regelmäßige Jobs als tägliche, wöchentliche und monatliche Jobs zu steuern. Anacron versucht, die geplanten Jobs so nah wie möglich an der Systemverfügbarkeit auszuführen.
Anacron-Konfigurationsdatei
/etc/anacrontab ist die Anacron-Konfigurationsdatei. Unten ist ein Beispiel für eine unbearbeitete Anacron-Datei:
# cat /etc/anacrontab # /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Hier :
1. Zeitraum in Tagen :Gibt die Häufigkeit der Ausführung eines Jobs in Tagen an. Diese Variable kann durch eine ganze Zahl oder ein Makro (@daily, @weekly, @monthly) dargestellt werden, wobei @daily denselben Wert wie die ganze Zahl 1 bezeichnet, @weekly denselben Wert wie 7 und @monthly angibt, dass der Job ausgeführt wird einmal im Monat, unabhängig von der Monatslänge.
2. Verzögerung in Minuten :Gibt die Anzahl der Minuten an, die Anacron gegebenenfalls wartet, bevor es einen Job ausführt. Diese Variable wird durch eine ganze Zahl dargestellt, wobei 0 keine Verzögerung bedeutet.
3. Job-Kennung :Gibt einen eindeutigen Namen eines Jobs an, der in den Protokolldateien verwendet wird.
4. Befehl :gibt den auszuführenden Befehl an. Der Befehl kann entweder ein Befehl wie ps -ef>> /tmp/processes oder ein Befehl zum Ausführen eines benutzerdefinierten Skripts sein.
Die 3 Zeilen am Ende der Konfigurationsdateien sind systemdefinierte Cron-Jobs.
1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Die restlichen Variablen werden unten anhand eines Beispiels erläutert.
Beispiel einer Anacron-Konfiguration
Sehen wir uns ein Beispiel für die Konfiguration von anacron an. Wir erstellen einen Anacron-Job, um ein Skript mit dem Namen „daily_job.sh“ täglich mit einer 35-minütigen Verzögerung nach dem Hochfahren des Systems auszuführen.
# cat /etc/anacrontab RANDOM_DELAY=30 START_HOURS_RANGE=10-18 1 35 daily_job sh /var/tmp/daily_job.sh
Wenn das System läuft, wird der Job gemäß START_HOURS_RANGE ausgeführt die in der Datei /etc/anacrontab definiert ist. Die Variable START_HOURS_RANGE definiert den Stundenbereich, in dem der geplante Jobb ausgeführt werden darf. In unserem Fall ist es 10 Uhr. bis 18 Uhr (10-18)
# grep -i START_HOURS_RANGE /etc/anacrontab START_HOURS_RANGE=10-18
Die RANDOM_DELAY Die Variable gibt die maximale Anzahl von Minuten an, die der Variablen Verzögerung in Minuten hinzugefügt werden, die für jeden Job angegeben ist. Ein auf 30 gesetztes RANDOM_DELAY würde daher zufällig zwischen 0 und 30 Minuten zur Verzögerung in Minuten für jeden Job in dieser bestimmten Anacrontab hinzufügen. Bei Einstellung auf 0 wird keine zufällige Verzögerung hinzugefügt.
# grep -i RANDOM_DELAY /etc/anacrontab RANDOM_DELAY=30