Cron-Ausdrücke sind kurz, aber nicht gerade auf den ersten Blick zu lesen. Statt in der Dokumentation nachzuschlagen, wann genau */15 9-17 * * 1-5 ausgeführt wird, fügst du ihn hier ein und bekommst eine verständliche Beschreibung sowie die tatsächlichen nächsten Ausführungszeiten.
Feld-Syntax
Der klassische Cron-Ausdruck liest sich von links als Minute, Stunde, Tag des Monats, Monat und Wochentag — 5 Felder. Dieses Tool erkennt außerdem eine 6-Felder-Form mit einem zusätzlichen Sekundenfeld ganz vorn (Sekunde, Minute, Stunde, Tag des Monats, Monat, Wochentag).
- Minute: 0–59
- Stunde: 0–23
- Tag des Monats: 1–31
- Monat: 1–12 oder JAN–DEC
- Wochentag: 0–7 (0 und 7 bedeuten beide Sonntag) oder SUN–SAT
- Sekunde (nur bei der 6-Felder-Form): 0–59
Jedes Feld akzeptiert:
*— jeder Wert („jede Minute“, „jede Stunde“)5— ein genauer Wert1-5— ein Bereich (Montag bis Freitag)*/15— ein Schritt (ab 0, alle 15: 0, 15, 30, 45)1,15,30— eine kommagetrennte Liste
Gängige Makros werden ebenfalls unterstützt: @yearly (0 0 1 1 *), @monthly (0 0 1 * *), @weekly (0 0 * * 0), @daily (0 0 * * *) und @hourly (0 * * * *). @reboot hat keinen festen Zeitpunkt und wird deshalb nicht unterstützt.
Unterschiede zwischen den Varianten: Unix cron vs. Quartz vs. Cloud-Scheduler
„Cron-Ausdruck“ meint nicht überall genau dieselbe Syntax.
- Unix cron (crontab): Die klassischen 5 Felder. Der Wochentag läuft von 0–7 (0 und 7 bedeuten beide Sonntag), und Felder unterstützen nur Werte, Bereiche, Listen und Schritte (
*/n). - Quartz (der Java-Scheduler): 6 oder 7 Felder, mit Sekunden vorn und einem optionalen Jahr am Ende. Der Wochentag läuft von 1–7 (1 = Sonntag) statt wie bei Unix cron von 0–7, und es kommen Zeichen dazu, die Unix cron nicht kennt:
L(letzter Tag des Monats oder der Woche),W(nächster Werktag),#(z. B.6#3= der dritte Freitag) und?(Tag-des-Monats oder Wochentag offenlassen). Bei Quartz dürfen außerdem nicht beide Felder, Tag-des-Monats und Wochentag, gleichzeitig*sein. - Cloud-Scheduler (AWS EventBridge, Google Cloud Scheduler und ähnliche): Im Groben ähnlich wie Unix cron, aber die Details unterscheiden sich mitunter. AWS EventBridge etwa folgt dem Quartz-artigen 6-Felder-Aufbau (von Minuten bis zu einem optionalen Jahr, ohne Sekundenfeld) und verlangt ein
?entweder bei Tag-des-Monats oder bei Wochentag.
Dieses Tool prüft und beschreibt nur die Standard-Syntax mit 5 oder 6 Feldern (Sekunden vorn). Quartz- oder cloud-spezifische Zeichen (L, W, #, ?, ein Jahresfeld usw.) werden nicht unterstützt — prüfe vor der tatsächlichen Einrichtung also zusätzlich die Dokumentation des jeweiligen Dienstes.
Fallstricke bei der Sommerzeit
Wenn du eine Zeitzone wählst, um die nächsten Ausführungszeiten zu berechnen, helfen zwei Dinge rund um die Sommerzeit-Umstellung weiter:
- Eine fehlende Stunde beim Vorstellen der Uhr. An dem Tag, an dem die Uhr vorgestellt wird, gibt es eine bestimmte lokale Uhrzeit (oft gegen 2 Uhr) überhaupt nicht. Die Datumsbibliothek hinter diesem Tool löst diese fehlende Zeit mit dem Offset von vor der Umstellung auf.
- Eine doppelte Stunde beim Zurückstellen der Uhr. An dem Tag, an dem die Uhr zurückgestellt wird, kommt eine lokale Uhrzeit zweimal vor. Dieses Tool zeigt sie nur einmal, nicht zweimal.
Läuft ein Job zwischen 1 und 3 Uhr, lohnt es sich, seine nächsten Ausführungszeiten rund um die Sommerzeit-Umstellung mit diesem Tool zu prüfen.