Cron-Jobs erklärt: Crontab-Syntax mit Beispielen
Cron führt Befehle nach Zeitplan auf Linux- und macOS-Servern aus. Dieser Leitfaden erklärt das Crontab-Format, zeigt die meistgebrauchten Zeitpläne und nennt die Fehler, durch die Cron-Jobs still scheitern.
Tool öffnen: Cron-Ausdruck erklären und erstellen
Cron-Job anlegen
Mit crontab -e öffnen Sie Ihre persönliche Crontab im Editor. Fügen Sie pro Job eine Zeile hinzu: die fünf Zeitfelder und danach den Befehl, zum Beispiel 0 2 * * * /home/ich/backup.sh. Speichern und schließen Sie den Editor; Cron übernimmt die Änderung automatisch.
Mit crontab -l listen Sie Ihre Jobs auf. Systemweite Jobs stehen in /etc/crontab und /etc/cron.d; dort folgt auf den Zeitplan noch ein Feld mit dem Benutzer, der den Befehl ausführt.
Die fünf Felder lesen
Von links nach rechts: Minute, Stunde, Tag im Monat, Monat und Wochentag. Ein Job läuft, wenn alle Felder zur aktuellen Zeit passen. Ein Stern passt auf jeden Wert, Kommas bilden Listen, Bindestriche Bereiche und ein Schrägstrich legt eine Schrittweite fest.
Ausgabe in ein Log schreiben
Cron hat kein Terminal, die Ausgabe wird per Mail an den Benutzer geschickt oder geht verloren. Hängen Sie >> /var/log/meinjob.log 2>&1 an den Befehl an, um ein Log zu haben, falls etwas schiefgeht.
Warum ein Cron-Job nicht läuft
- Der PATH in Cron ist minimal. Nutzen Sie volle Pfade zu Programmen und Skripten, etwa /usr/bin/python3.
- Das Skript ist nicht ausführbar. Führen Sie chmod +x darauf aus.
- Umgebungsvariablen aus Ihrem Shell-Profil werden nicht geladen. Setzen Sie sie in der Crontab oder im Skript.
- Die Zeitzone des Servers weicht von Ihrer ab. Prüfen Sie das mit date oder timedatectl.
- Ein % im Befehl wird zum Zeilenumbruch. Schreiben Sie es als \%.
Zeitplan vor dem Deployment prüfen
Fügen Sie den Ausdruck in den Cron-Erklärer auf dieser Seite ein, um ihn in klaren Worten zu sehen und die nächsten Ausführungen zu prüfen. So fallen Werte außerhalb des Bereichs und die Falle mit Tag im Monat und Wochentag auf, bevor der Job live geht.