Überblick
Cron ist ein Hintergrunddienst (Daemon) in Unix- und Unix-ähnlichen Betriebssystemen, der Programme oder Skripte zu zuvor festgelegten Zeitpunkten automatisch startet. Auf Systemen wie Linux wird Cron häufig für wiederkehrende Wartungsaufgaben, Sicherungen oder automatisierte Abläufe eingesetzt. Der Dienst prüft in regelmäßigen Abständen eine oder mehrere Konfigurationsdateien und startet alle Jobs, deren Zeitmuster zutrifft.
Aufbau und Grundprinzip
Die Konfiguration von Cron erfolgt über sogenannte Crontab-Dateien (Cron-Tabelle). Es existieren systemweite Crontabs und persönliche Crontabs pro Benutzer. Jede Zeile in einer Crontab beschreibt ein Zeitmuster und den Befehl, der ausgeführt werden soll. Typischerweise wird die persönliche Crontab mit einem Hilfswerkzeug wie crontab -e bearbeitet, das den Eintrag in das richtige Verzeichnis des Systems schreibt.
Crontab-Format und Beispiele
Eine Crontab-Zeile enthält fünf Felder für die Zeitangabe, gefolgt vom auszuführenden Befehl. Die Felder sind:
- Minute (0–59)
- Stunde (0–23)
- Tag des Monats (1–31)
- Monat (1–12)
- Wochentag (0–7, wobei 0 und 7 für Sonntag stehen)
Zusätzlich haben viele Cron-Implementierungen Kürzel wie @reboot, @daily oder @weekly für gebräuchliche Intervalle. Beispiel: 0 2 * * * startet ein Skript täglich um 2:00 Uhr. Cron akzeptiert Platzhalter, Listen und Bereiche (z. B. */15 für alle 15 Minuten).
Geschichte und Name
Der Name Cron leitet sich vom griechischen Wort für Zeit χρónos ab; deswegen findet sich die Herkunft oft in Beschreibungen und Dokumentationen. Verschiedene Implementierungen und Weiterentwicklungen existieren: ursprüngliche Konzepte aus frühen Unix-Systemen, verbreitete Varianten wie Vixie cron oder cronie sowie moderne Alternativen, die eine engere Integration in Systemdienste bieten.
Anwendungsfälle und Beispiele
Cron wird eingesetzt, um Routineaufgaben zu automatisieren: Logrotation, Systemupdates, Datenbank-Sicherungen, regelmäßiges Herunterladen von Dateien (z. B. per curl oder wget) oder das periodische Abrufen von E-Mails (POP/IMAP) und deren Verarbeitung. In Webhosting-Umgebungen sind Cron-Jobs üblich, um wiederkehrende Aufgaben unabhängig von Benutzerinteraktion auszuführen.
Besondere Hinweise, Alternativen und Best Practices
Wichtige Hinweise: Cron führt Befehle in einer minimalen Shell-Umgebung aus, daher sollten Pfadangaben, Umgebungsvariablen und absolute Pfade verwendet werden. Fehlerausgaben lassen sich per Mail an einen Benutzer richten oder in Logs umleiten. Für zeitkritische oder komplexe Abhängigkeiten bieten sich Alternativen wie systemd-Timer an. Weitere Informationen und Beispiele finden sich in Systemd- oder Cron-Dokumentationen (Distributionen und Projektseiten).
Für weiterführende Erläuterungen zur Namensherkunft: χρόνος (chronos) wird in vielen Beschreibungen zur Etymologie von Cron zitiert.