Zum Inhalt springen

Cron-Ausdrücke erklärtBeta

Wandelt einen Cron-Ausdruck in einen verständlichen Satz um und zeigt die nächsten Ausführungszeiten in jeder Zeitzone – mit Spickzettel für Felder und Makros.

5 Felder

Beschreibung

Um 09:00, Montag bis Freitag

Nächste Ausführungszeiten

Zeitzone des Browsers: UTC

Gib einen gültigen Ausdruck ein, um die nächsten Ausführungszeiten zu sehen.

Felder & Spickzettel

Felder & Spickzettel
FeldBedeutungWerte
SekundeSekunde (nur bei 6 Feldern)0–59
MinuteMinute0–59
StundeStunde0–23
Tag des MonatsTag des Monats1–31
MonatMonat1–12 oder JAN–DEC
WochentagWochentag0–7 (0 und 7 bedeuten beide Sonntag) oder SUN–SAT

Quartz-spezifische Zeichen (L, W, #, ?) werden hier nicht unterstützt — nur die Standardsyntax mit 5 oder 6 Feldern.

Gängige Makros

Beispiele

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 Wert
  • 1-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:

  1. 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.
  2. 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.

Quellen

Häufige Fragen

Was ist der Unterschied zwischen einem 5-Felder- und einem 6-Felder-Ausdruck (mit Sekunden)?

Der klassische Cron-Ausdruck hat 5 Felder: Minute, Stunde, Tag des Monats, Monat und Wochentag. Dieses Tool akzeptiert außerdem eine 6-Felder-Form mit einem zusätzlichen Sekundenfeld ganz vorn (z. B. bedeutet 30 0 9 * * 1-5: jeden Werktag um 9:00:30 Uhr). Ob dein Scheduler Sekunden wirklich unterstützt, hängt vom System ab — prüfe die Dokumentation des Ziels, auf dem der Job läuft.

Warum wird @reboot nicht unterstützt?

@reboot bedeutet „beim Systemstart einmal ausführen“ und hat keinen festen Zeitpunkt. Da dieses Tool kommende Ausführungszeiten berechnet, kann es mit einem Ausdruck ohne festen Zeitplan nichts anfangen — deshalb steht @reboot nicht in der unterstützten Liste.

Kann ich Quartz-Zeichen wie L, W, # oder ? verwenden?

Nein. Dieses Tool verarbeitet nur die Standard-Syntax mit 5 oder 6 Feldern aus der Unix-cron-Welt. L (letzter Tag des Monats), W (nächster Werktag), # (n-ter Wochentag im Monat) und ? (Tag-des-Monats oder Wochentag offenlassen) sind Quartz-spezifische Erweiterungen — siehe „Unterschiede zwischen den Varianten“ weiter unten.

Warum kann ein Job zur Sommerzeit-Umstellung zu einer unerwarteten Zeit laufen?

Am Tag, an dem die Uhr vorgestellt wird, gibt es eine lokale Uhrzeit (meist gegen 2 Uhr), die schlicht nicht existiert; am Tag, an dem sie zurückgestellt wird, kommt eine Uhrzeit doppelt vor. Die Datumsbibliothek, die dieses Tool verwendet, berechnet die nicht existierende Zeit mit dem Offset von vor der Umstellung und zeigt die doppelte Zeit nur einmal an. Bei einem Zeitplan zwischen 1 und 3 Uhr in einer Zeitzone mit Sommerzeit lohnt sich ein Blick um die Umstellungstage herum.

In welcher Zeitzone werden die „nächsten Ausführungszeiten“ angezeigt?

In der Zeitzone, die du auswählst. Voreingestellt ist die vom Browser gemeldete Zeitzone, und welche gerade aktiv ist, wird immer angezeigt. Läuft der eigentliche Cron-Job auf einem Server in einer anderen Zeitzone, wechsle dorthin, um ihn zu prüfen.

Verwendete Open-Source-Software: cronstrue (MIT), cron-parser (MIT), Luxon (MIT)