Anacron ist ein Dienst, der nach jedem Systemneustart ausgeführt wird und nach Cron- und geplanten Jobs sucht, die ausgeführt werden sollten, während das System heruntergefahren war, und daher noch nicht ausgeführt wurden. Es scannt die Datei /etc/cron.hourly/anacron Datei für drei Faktoren, um zu bestimmen, ob diese verpassten Jobs ausgeführt werden sollen. Die drei Faktoren sind das Vorhandensein der Datei /var/spool/anacron/cron.daily, die verstrichene Zeit von 24 Stunden seit der letzten Ausführung von anacron und das Vorhandensein der Wechselstromversorgung des Systems. Wenn alle drei Faktoren positiv sind, fährt Anacron fort und führt automatisch die Skripte aus, die sich in /etc/cron.daily befinden , /etc/cron.weekly und /etc/cron.monthly Verzeichnisse, basierend auf den Einstellungen und Bedingungen, die in der Hauptkonfigurationsdatei /etc/anacrontab von anacron definiert sind. Der Standardinhalt der Datei /etc/anacrontab wird unten angezeigt:
$ cat /etc/anacrontab SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root RANDOM_DELAY=45 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
In dieser Datei sind fünf Umgebungsvariablen definiert:die SHELL und PFAD Variablen legen die Shell und den Pfad fest, die zum Ausführen der Skripte verwendet werden sollen (am Ende dieser Datei definiert); MAILTO definiert den Benutzernamen oder eine E-Mail, an die alle Ausgabe- und Fehlermeldungen gesendet werden; RANDOM_DELAY drückt die maximale zufällige Verzögerung in Minuten aus (addiert zur Basisverzögerung der Jobs, wie in der zweiten Spalte der letzten drei Zeilen definiert) und START_HOURS_RANGE gibt den Stundenbereich an, in dem die Jobs beginnen könnten.
Die letzten drei Zeilen in der obigen Beispielausgabe definieren den Zeitplan und die auszuführenden Skripts. Die erste Spalte stellt den Zeitraum in Tagen (oder @daily, @weekly, @monthly oder @yearly) dar, den Anacron verwendet, um zu prüfen, ob der angegebene Job in dieser Anzahl von Tagen oder Zeitraum ausgeführt wurde, die zweite gibt die Verzögerung in Minuten an anacron warten soll, bevor der Job ausgeführt wird, die dritte identifiziert eine Job-ID und die vierte Spalte gibt den Befehl an, der verwendet werden soll, um den Inhalt von /etc/cron.daily, /etc/cron.weekly und /etc/cron auszuführen .monatliche Dateien. Hier wird der Befehl run-parts verwendet, um alle Dateien in den drei Verzeichnissen mit der Standardeinstellung auszuführen.
Anacron prüft für jeden Job, ob der Job zuvor in den angegebenen Tagen oder in dem angegebenen Zeitraum (Spalte 1) ausgeführt wurde, und führt ihn aus, nachdem die Anzahl der Minuten (Spalte 2) abgewartet wurde, falls dies nicht der Fall war. Anacron kann manuell an der Eingabeaufforderung ausgeführt werden. Um beispielsweise alle Jobs auszuführen, die in der Datei /etc/anacrontab geplant sind, aber verpasst wurden, können Sie den folgenden Befehl eingeben:
# anacron
Anacron speichert sein Ausführungsdatum in den Dateien im Verzeichnis /var/spool/anacron für jeden definierten Zeitplan.