Cron ist ein Taskplaner. Mit ihm kann man festlegen, zu welchen Zeiten eine bestimmte Aufgabe ausgeführt werden soll, bzw. zu welcher Zeit ein ebestimmtes Programm gestartet werden soll. Wenn der Computer zu dieser Zeit jedoch nicht angeschaltet ist, dann wird die Aufgabe auch nicht ausgeführt.

Dieses Problem behebt Anacron. Bei Anacron wird nur festgelegt, dass eine Aufgabe täglich, wöchentlich oder monatlich ausgeführt werden soll und nicht zu einer bestimmten Uhrzeit.
Doch wann führt Anacron Aufgaben aus wenn der Computer 24/7 läuft? Und was passiert wenn ein Programm eine Aufgabe für Anacron anlegt, Anacron aber gar nicht installiert ist?

Je nachdem, wie oft eine Aufgabe ausgeführt werden soll, wird das entsprechende Skript unter Ubuntu in /etc/cron.daily, /etc/cron.monthly, oder /etc/cron weekly abgelegt. Viele Programme legen hier automatisch Skripte für Wartungsaufgaben an. Was passiert nun mit diesen Skripten wenn Anacron auf dem System nicht installiert ist?

Dann werden diese Aufgaben wieder von Cron ausgeführt. Und zwar eben wieder zu festen Uhrzeiten. Ist der Computer zu dieser Zeit ausgeschaltet, werden die Aufgaben nicht ausgeführt. Wann Cron die Aufgaben ausführt ist in der systemweiten Cron Tabelle unter /etc/crontab aufgeführt. hier gibt es einen Eintrag wie:

25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Die taglichen Aufgaben werden also um 06:25 Uhr ausgeführt usw. (Wohlgemerkt, wenn Anacron NICHT installiert ist)

Wenn Anacron installiert ist, führt es die Aufgaben unter /etc/cron.daily usw selbst aus.
Anacron läuft nicht ständig als deamon im Hintergrund, sondern muss gezielt aufgerufen werden. Das geschieht durch zwei Dinge. Wenn der Rechner nicht die ganze Zeit läuft, dann wird Anacron durch das Skript /etc/init.d/anacron beim booten aufgerufen. Nun checkt Anacron wie lange es her ist, dass die Aufgaben in /etc/cron.daily ausgeführt wurden. Sind mehr als 24 Stunden vergangen werden die Skripte ausgeführt.
Für den Fall dass der Rechner den ganzen Tag läuft, wird Anacron von Cron zu einer in /etc/cron.d/anacron festgelegten Zeit aufgerufen (Standart ist 07:30 Uhr).

Zuletzt muss noch die Datei /etc/anacrontab erwähnt werden. Hier wird für Anacron festgelegt, wo die Skripte liegen und wie oft diese ausgeführt werden sollen.
Die Einträge sehen etwa so aus:

1       5       cron.daily      run-parts --report /etc/cron.daily

Dies gibt an, dass die Skripte in /etc/cron.daily einmal täglich mit einer Verzögerung von 5 Minuten nach Systemstart nacheinander ausgeführt werden.


Dieser Artikel ist lizenziert unter einer Creative Commons Namensnennung 3.0 Deutschland Lizenz.

1 Comment