So validierst du Cron-Ausdrücke: Eine Schritt-für-Schritt-Anleitung
So validierst du Cron-Ausdrücke
Cron-Ausdrücke sind kompakt, aber leicht falsch zu schreiben. Ein falsch gesetzter Schrägstrich oder ein Wert außerhalb des Bereichs kann dazu führen, dass ein Job zur falschen Zeit läuft — oder überhaupt nicht. Ausdrücke vor der Bereitstellung zu validieren, spart stundenlanges Debugging, wenn eine kritische Aufgabe stillschweigend fehlschlägt.
Häufige Syntaxfehler
Werte außerhalb des Bereichs
Jedes Feld akzeptiert einen bestimmten Bereich. Werte außerhalb dieses Bereichs sind ungültig.
# Invalid: minute 60 is out of range (0-59)
60 * * * *
# Invalid: hour 24 is out of range (0-23)
0 24 * * *
Fehlende Felder
Ein Cron-Ausdruck erfordert genau fünf Felder. Vier Felder sind ungültig, sechs Felder erfordern erweiterte Syntax.
# Invalid: only 4 fields (missing day of week)
0 0 * *
# Invalid: 6-field syntax without proper daemon support
0 0 * * * * /command.sh
Zähle immer: Minute, Stunde, Tag des Monats, Monat, Wochentag.
Falsche Schrittwerte
# Invalid: cannot step by 0
*/0 * * * *
# Invalid: step exceeds field maximum
*/61 * * * *
Schrittwerte müssen bei 1 beginnen und dürfen das Maximum des Feldes nicht überschreiten.
So validierst du einen Cron-Ausdruck
Schritt 1: In Felder aufteilen
Nach Leerzeichen aufteilen und prüfen, dass es genau fünf Felder sind:
Expression: 30 6 * * 1-5
Fields: minute=30, hour=6, day=*, month=*, weekday=1-5
Schritt 2: Jedes Feld validieren
| Feld | Erlaubter Bereich | Akzeptiert Sonderzeichen |
|-------|--------------|-----------------------|
| Minute | 0-59 | * , - / |
| Stunde | 0-23 | * , - / |
| Tag des Monats | 1-31 | * , - / |
| Monat | 1-12 | * , - / |
| Tag der Woche | 0-7 | * , - / |
Schritt 3: Auf Konflikte prüfen
Einige Ausdrücke sind syntaktisch gültig, aber logisch überraschend:
# Runs on the 15th OR every Sunday — an OR condition
0 0 15 * 0
Tag des Monats und Tag der Woche zusammen erzeugen im Standard-Cron eine ODER-Bedingung. Der Job wird ausgeführt, wenn eines von beiden zutrifft.
Schritt 4: Kommende Zeiten vorschauen
Ausführungszeiten erzeugen, um deinen Zeitplan visuell zu überprüfen:
Expression: 0 2 * * 1
Next 5 executions:
1. 2026-07-27 02:00:00 (Monday)
2. 2026-08-03 02:00:00 (Monday)
3. 2026-08-10 02:00:00 (Monday)
Wenn die Vorschau nicht deiner Absicht entspricht, korrigiere den Ausdruck vor der Produktion.
Debugging nicht ausgeführter Jobs
Ein gültiger Ausdruck, der nicht läuft, ist normalerweise ein Systemproblem:
- Berechtigungen — das Skript muss Ausführungsberechtigung haben (
chmod +x). - Pfad — Cron verwendet einen minimalen PATH. Verwende immer absolute Pfade:
/usr/local/bin/mybackup.shstattmybackup.sh. - Umgebung — Cron lädt keine Shell-Profile. Exportiere Variablen innerhalb der Crontab oder im Skript selbst.
- Protokollierung — leite die Ausgabe um, um die Ausführung zu bestätigen:
0 6 * * * /path/to/script.sh >> /var/log/cron.log 2>&1
Verwendung des Validator-Tools
Der Cron-Expression-Validator bietet drei Funktionen:
- Syntaxvalidierung — sofortiges Feedback zu Feldwerten und Formatierung.
- Zeitplanvorschau — zeige kommende Ausführungszeiten ab dem aktuellen Datum an.
- Visueller Kalender — geplante Ausführungen auf einem Monatskalender dargestellt.
Kein Cron-Ausdruck sollte bereitgestellt werden, ohne die nächsten Ausführungszeiten vorzuschauen. Eine Dreißig-Sekunden-Prüfung verhindert stille Zeitplanungsfehler.