Cronjobs sind ein mächtiges Werkzeug unter Linux, mit dem du wiederkehrende Aufgaben automatisieren kannst. Egal ob Backups, Systemupdates oder Datenbank-Cleanups - mit Cronjobs kannst du diese Aufgaben zu bestimmten Zeiten automatisch ausführen lassen, ohne manuelles Eingreifen.
Für dieses Tutorial benötigst du:
Cronjobs werden in der sogenannten "Crontab" (Cron Table) gespeichert. Jeder Benutzer kann seine eigene Crontab haben. Um deine Crontab zu bearbeiten, verwende folgenden Befehl:
Beim ersten Aufruf wirst du möglicherweise nach deinem bevorzugten Editor gefragt (nano, vim, etc.).
Um die aktuelle Crontab anzuzeigen, ohne sie zu bearbeiten:
Die Syntax eines Cronjobs besteht aus 5 Zeitfeldern, gefolgt vom auszuführenden Befehl:
* * * * * Befehl
Die 5 Sternchen stehen für:
Hier sind einige praktische Beispiele für Cronjobs:
Um dir die Erstellung von Cronjobs zu erleichtern, habe ich einen einfachen Generator erstellt. Wähle einfach die gewünschten Zeiten aus und erhalte den fertigen Cronjob-Befehl:
Die Umgebung, in der Cronjobs laufen, unterscheidet sich von deiner normalen Shell. Wenn dein Skript Umgebungsvariablen benötigt, solltest du diese in der Crontab definieren:
PATH=/usr/local/bin:/usr/bin:/bin
HOME=/home/username
# Deine Cronjobs folgen hier
* * * * * /pfad/zum/script.sh
Standardmäßig sendet Cron die Ausgabe deiner Befehle per E-Mail an den Benutzer. Du kannst die Ausgabe auch in eine Datei umleiten:
Wenn dein Cronjob nicht wie erwartet funktioniert, überprüfe die Cron-Logs:
Neben dem klassischen Cron gibt es auch einige moderne Alternativen:
Hinweis: Ich habe mit diesen Alternativen bisher keine umfangreichen Erfahrungen gemacht, möchte sie aber der Vollständigkeit halber hier erwähnen. Für die meisten Anwendungsfälle bietet der klassische Cron-Dienst bereits alle benötigten Funktionen.