cron ist ein Dämon, der zu festgelegten Zeiten Programme startet. Unter Linux wird meist der Vixie Cron verwendet.

Die Steuerung von cron erfolgt über crontabs.

Jeder Benutzer kann sich eine eigene crontab einrichten, auch root. (crontab -e benutzen!)

Für das System selbst liest cron /etc/crontab.

Eigene Scripte sollten möglichst in /etc/cron.daily, /etc/cron.monthly oder /etc/cron.weekly eingeordnet werden - abhängig von der geplanten Aufrufhäufigkeit (täglich, wöchentlich oder einmal im Monat).

Debian hat das Konzept noch etwas erweitert: zusätzliche Aufrufe können in /etc/cron.d/ untergebracht werden.

Beispiel: exim

# /etc/cron.d/exim: crontab fragment for exim

# Run queue every 15 minutes
08,23,38,53 *     * * *     mail   if [ -x /usr/sbin/exim -a -f /etc/exim/exim.conf ]; then /usr/sbin/exim -q ; fi

anacron

Anacron sorgt dafür, dass auch auf Rechnern, die nicht 24x7 laufen, Jobs in regelmäßigen Intervallen aufgerufen werden (etwa updatedb aus dem GNU findutils Paket). Es wird versucht, die Scirpte /etc/cron.(daily|montly|weekly|d) in entsprechenden Intervallen auszuführen, wichtig hierbei ist, dass diese nicht auf .sh enden dürfen, da sie sonst ignoriert werden, dafür verantwortlich ist das Programm run-parts (genaueres dazu findet man in der entsprechenden manpage).

Fragen & Antworten

F: Ich bekomme auf meine root-server (1und1) minütlich eine Meldung, daß ein cronjob (confixx_counter) nicht vernünftig läuft. Ich will diesen aber gar nicht laufen haben und habe mit crontab -r die cron-Tabelle gelöscht. Solange cron jedoch weiter läuft, bekomme ich minütlich eine Mail. Das hört erst auf, wenn ich den Service stoppe. Wo weitersuchen ?

A: in /etc/cron*, in diesem Fall ist es /etc/cron.d/confixx, siehe auch cron(8) Anmerkung: Aber bitte diesen Cronjob nur löschen, wenn Confixx nicht benutzt wird, da es sonst zu Funktionsstörungen kommen kann!

F: Mein Provider erlaubt mir nicht, Cronjobs auf dem Webserver auszuführen. Gibt es eine andere Möglichkeit, Scripts zu bestimmten Zeiten laufen zu lassen?

A: Es gibt Dienste (Cronjob-Hoster), die ein Programm auf einem beliebigen Server zeitgesteuert aufrufen können. Zum Beispiel: http://www.cronjobs.net

F: Ich starte meinen Server jeden Morgen per BIOS-Wake-up zeitgesteuert. Was muss ich in meine crontab eintragen, damit der Rechner jeden Abend um 22:00 Uhr selbstständig herunterfährt?

A: 0 22 * * * /sbin/shutdown -h now

cron (zuletzt geändert am 2007-12-23 22:48:27 durch localhost)