Werkzeuge
Leitfäden

Cron-Ausdruck-Generator

Umwandlung

Erstellt, validiert und erklärt Cron-Ausdrücke. Berechnet die nächste Ausführung (UTC).

100 % clientseitig Ohne Backend
Vorlagen
Ausgabe
Nächste Ausführung (UTC)
Kopieren
Auf dieser Seite

Was ist ein Cron-Ausdruck?#

Ein Cron-Ausdruck ist ein kompakter Zeitplan aus fünf leerzeichengetrennten Feldern: Minute Stunde Tag-des-Monats Monat Wochentag. Eine Zeile wie 0 9 * * 1-5 liest sich von links nach rechts als „zur Minute 0, Stunde 9, jedem Tag-des-Monats, jedem Monat, an den Tagen 1 bis 5 (Montag bis Freitag)“ — also 09:00 Uhr an Werktagen. Jedes * bedeutet „jeder Wert in diesem Feld“, je mehr Felder Sie festlegen, desto spezifischer der Zeitplan; je mehr Sie als * belassen, desto häufiger feuert er.

Cron ist die native Planungssprache von Linux crontab, GitHub Actions, Kubernetes CronJob, den meisten CI-Systemen und unzähligen Aufgabenplanern. Die Hälfte der Arbeit ist, einen Ausdruck korrekt zu schreiben; die andere Hälfte ist die Tag-des-Monats/Tag-der-Woche-Eigenheit (siehe FAQ unten), an der sogar erfahrene Entwickler stolpern. Diese Seite parst Ihre fünf Felder während des Tippens, markiert das fehlerhafte Feld bei Syntax- oder Bereichsfehlern exakt und berechnet die nächste Ausführung, damit Sie bestätigen können, dass der Zeitplan wirklich dann feuert, wenn Sie es erwarten.

So wird es verwendet#

  1. Bearbeiten Sie das Feld Ausdruck oben. Es startet mit * * * * * (jede Minute).
  2. Darunter befinden sich fünf Dropdowns — eines pro Feld (Minute, Stunde, Tag-des-Monats, Monat, Wochentag). Jedes bietet die gängigen Bausteine für dieses Feld (*, */5, 0, 1-5, 0,6 …); wählt man einen aus, wird er an der passenden Position in den Ausdruck eingesetzt — praktisch, wenn man sich nicht mehr erinnert, ob */15 ins Minutenfeld gehört.
  3. Die Zeile Vorlagen füllt mit einem Klick komplette Einstiegszeitpläne aus: Jede Minute, Stündlich, Täglich, Wöchentlich, Monatlich, Jährlich, Werktags.
  4. Das Ausgabe-Panel zeigt Nächste Ausführung (den ersten Zeitpunkt ab jetzt, der passt) und eine Statuszeile, die entweder einen gültigen Parse bestätigt oder das fehlerhafte Feld nennt. Klicken Sie auf now(), um neu gegen den aktuellen Moment zu berechnen.

Die wichtigsten Funktionen#

  • Vollständige Fünffeld-Grammatik. Unterstützt *, Kommalisten (0,15,30,45), Bereiche (1-5), Schritte (*/15, 9-17/2) sowie Monats- und Tagesnamen (JAN-DEC, SUN-SAT, Groß-/Kleinschreibung irrelevant). 7 wird für Sonntag akzeptiert und zu 0 normalisiert.
  • Korrekte Tag-des-Monats/Tag-der-Woche-Logik. Implementiert die Standard-Vixie-cron-Regel: Wenn beide Felder eingeschränkt sind, feuert der Job, wenn eines zutrifft (logisches ODER); wenn nur eines eingeschränkt ist, müssen beide zutreffen (UND). Viele naive Rechner machen hier Fehler.
  • Feldgenaue Fehler. Ein fehlerhafter Bereich oder ein stray-Buchstabe wird mit dem exakt fehlerhaften Feld gemeldet (Minute, Stunde …), nicht mit einem generischen „ungültiger Ausdruck“.
  • UTC-basierte nächste Ausführung. Der nächste Trigger wird aus den UTC-Komponenten des Zeitpunkts berechnet, damit das Ergebnis deterministisch ist, unabhängig davon, wo die Seite geladen wird — anschließend als normales Datum dargestellt, das Sie kopieren können.
  • Unerreichbarkeits-Wächter. Ein Ausdruck, der nie zutreffen kann (z. B. ein Tag-des-Monats, den kein Monat enthält), wird erkannt, statt endlos zu schleifen.

Anwendungsbeispiel#

Tippen Sie 0 9 * * 1-5 für ein Werktags-Standup. Feld für Feld: Minute 0, Stunde 9, Tag-des-Monats *, Monat *, Wochentag 1-5. Das Datumsfeld (*) und das Wochentagfeld (1-5) sind beide eingeschränkt, aber nur der Wochentag wirklich — das Datum ist ein Wildcard —, somit greift der UND-Pfad: Feuern um 09:00 an Tagen, die Montag bis Freitag sind. Nächste Ausführung zeigt den nächsten kommenden Werktag um 09:00 Uhr UTC.

Vergleichen Sie nun 0 0 1 * 1 — „Minute 0, Stunde 0, der 1. des Monats, jeder Monat, Montag“. Hier sind sowohl Tag-des-Monats (1) als auch Tag-der-Woche (1) eingeschränkt, daher wählt Cron den ODER-Pfad: Der Job feuert am 1. jedes Monats und an jedem Montag — nicht „nur an Montagen, die auf den 1. fallen“, was die fast universelle Fehlinterpretation ist. Das Panel Nächste Ausführung macht den Unterschied sichtbar: Sie sehen, wie es zum nächsten Montag springt, selbst wenn dieser nicht der 1. ist.

FAQ#

Warum feuert mein Job an Tagen, die ich nicht erwartet habe?#

Fast immer die Tag-des-Monats/Tag-der-Woche-Wechselwirkung. Standard-Cron behandelt beide als ODER, sobald beide festgelegt sind: 0 0 1 * 1 bedeutet „der 1., oder jeder Montag“, nicht „der 1. nur, wenn er ein Montag ist“. Wenn Sie einen Job möchten, der nur läuft, wenn der 1. ein Montag ist, kann Cron das selbst nicht ausdrücken — Sie planen den 1. ein und prüfen den Wochentag innerhalb des Skripts.

Was bedeuten */5 und 9-17/2?#

*/5 im Minutenfeld bedeutet „ab 0 jeder 5. Wert“ → 0, 5, 10, 15, …, 55. 9-17/2 bedeutet „im Bereich 9 bis 17 jeder 2. Wert“ → 9, 11, 13, 15, 17 — nützlich für „alle zwei Stunden während der Arbeitszeit“. Der Schrittdivisor nach / gilt für den Bereich oder die Wildcard, die ihm vorausgeht.

Ist 0 oder 7 Sonntag?#

Beide. Das Wochentagfeld akzeptiert 0 und 7 für Sonntag (cron historisch 0; manche Systeme ergänzten 7). Dieses Werkzeug akzeptiert beide und normalisiert 7 zu 0. Namen funktionieren ebenfalls: SUN, Mon, fri sind allesamt case-insensitive.

Der Ausdruck parst, aber Nächste Ausführung scheint weit entfernt. Ist das falsch?#

Wahrscheinlich nicht — es bedeutet meist, dass der Zeitplan tatsächlich bald nicht feuern kann. 0 0 29 2 * (29. Februar) ist gültig, trifft aber nur in Schaltjahren zu, also kann die nächste Ausführung Jahre entfernt sein. Das Werkzeug begrenzt die Suche auf etwa acht Jahre; ein Ausdruck, der in diesem Fenster nicht zutreffen kann, wird als unerreichbar gemeldet, statt die Seite zu blockieren.