Cron-Ausdruck-Parser & Nächste-Ausführung-Rechner

Analysiert einen Cron-Ausdruck (Minute Stunde Tag Monat Wochentag) und zeigt den Zeitplan in verständlicher Sprache. Unterstützt Schritte, Bereiche und Listen und berechnet die nächsten 5 Ausführungszeiten. Praktisch zum Lesen einer crontab oder eines GitHub-Actions-"schedule".

Cron-Ausdruck-Syntax (5 Felder)

Ein Cron-Ausdruck besteht aus 5 durch Leerzeichen getrennten Feldern, von links nach rechts: Minute, Stunde, Tag des Monats, Monat und Wochentag. Jedes Feld akzeptiert die folgenden Sonderzeichen.

Position Feld Erlaubte Werte
1 Minute 0-59
2 Stunde 0-23
3 Tag des Monats 1-31
4 Monat 1-12
5 Wochentag 0-7

Der Wochentag ist normalerweise 0 = Sonntag bis 6 = Samstag, aber dieses Tool akzeptiert auch 7 als Alias für Sonntag, wie es einige Cron-Implementierungen verwenden (wird intern wie 0 behandelt).

Jedes Feld akzeptiert "*" (jeder Wert), durch Kommas getrennte Listen (1,15,30), Bereiche mit Bindestrich (1-5) und Schritte mit Schrägstrich (*/15, 1-30/5) – diese lassen sich frei kombinieren.

Häufige Cron-Muster

Cron-Ausdruck Bedeutung
* * * * * Läuft jede Minute.
*/5 * * * * Läuft alle 5 Minuten.
0 * * * * Läuft einmal pro Stunde, zur Minute 0.
0 0 * * * Läuft täglich um Mitternacht (00:00).
0 9 * * 1-5 Läuft um 9 Uhr an Werktagen (Montag bis Freitag).
0 0 1 * * Läuft um Mitternacht am 1. jedes Monats.
0 0 1 1 * Läuft um Mitternacht am 1. Januar jedes Jahres.
*/15 9-17 * * 1-5 Läuft alle 15 Minuten zwischen 9 und 17 Uhr an Werktagen.

Tipps

  • Felder lassen sich frei kombinieren aus durch Kommas getrennten Listen, Bereichen mit Bindestrich und Schritten mit Schrägstrich, wie in "*/15 9-17 * * 1-5".
  • Der Wochentag ist normalerweise 0-6 (Sonntag bis Samstag), aber dieses Tool akzeptiert auch die 7 als gängigen Alias für Sonntag, den manche Cron-Implementierungen verwenden.
  • Sind sowohl Tag des Monats als auch Wochentag eingeschränkt (nicht "*"), behandelt Standard-Cron dies als ODER-Bedingung: Der Job läuft, wenn eine der beiden Bedingungen zutrifft.
  • Der "schedule"-Trigger von GitHub Actions verwendet dieselbe 5-Felder-Cron-Syntax wie dieses Tool und eignet sich damit auch zur Prüfung, wann genau ein Workflow läuft.
  • Die tatsächliche Ausführungszeit hängt von der Zeitzoneneinstellung des Servers ab, daher lohnt es sich, nach dem Bearbeiten einer crontab auch die aktuelle Serverzeit zu prüfen.

Häufig gestellte Fragen

Ja. Die Standard-Cron-Spezifikation verwendet 0 für Sonntag, aber manche Implementierungen (z. B. Vixie-Cron) akzeptieren auch 7 als alternative Schreibweise für Sonntag. Dieses Tool interpretiert beide als Sonntag.

Es geht nicht um Vorrang, sondern um eine ODER-Bedingung. Sind sowohl Tag des Monats als auch Wochentag eingeschränkt (nicht "*"), läuft der Job an jedem Tag, der eine der beiden Bedingungen erfüllt. Ist nur eines der beiden Felder eingeschränkt, gilt nur diese Bedingung.

Das grundlegende 5-Felder-Format (Minute Stunde Tag Monat Wochentag) ist identisch. Der wesentliche Unterschied: GitHub-Actions-Zeitpläne werden immer in UTC ausgewertet, und die tatsächliche Ausführung kann sich um mehrere Minuten bis mehrere Zehnerminuten verzögern – anders als bei einer Server-crontab.

Ja, Schrittwerte (ein Startwert mit Schrägstrich oder */Intervall) lassen sich in allen fünf Feldern verwenden. Bei Feldern mit kleinem Wertebereich, wie Monat oder Wochentag, sind die praktisch sinnvollen Kombinationen jedoch begrenzt.
ツールくん

Übrigens – Ein halbes Jahrhundert Cron

Der Name „cron" soll vom griechischen Wort Chronos für „Zeit" stammen und ist seit den frühen Tagen von UNIX in den 1970er-Jahren der klassische Job-Scheduler. Seine kompakte Syntax aus fünf Feldern kann alles ausdrücken, von „jede Minute" bis „ein bestimmtes Datum und eine bestimmte Uhrzeit einmal im Jahr", und wird fast ein halbes Jahrhundert später immer noch breit eingesetzt.

Heute wird dieselbe 5-Felder-Cron-Syntax nicht nur in Linux-crontabs verwendet, sondern auch in zahlreichen CI/CD-Tools und Container-Plattformen wie GitHub Actions, GitLab CI und Kubernetes-CronJobs direkt für die Zeitplankonfiguration übernommen. Es ist ein bemerkenswertes Beispiel dafür, wie eine in der UNIX-Ära entworfene Syntax auch in cloud-nativen Umgebungen unverändert weiterlebt.

Einer der tückischsten Aspekte der Cron-Syntax ist ihr Verhalten, wenn Tag des Monats und Wochentag gleichzeitig gesetzt sind. Man nimmt leicht eine UND-Bedingung an (beide müssen erfüllt sein), tatsächlich gilt aber eine ODER-Bedingung (eine der beiden genügt) – eine häufige Ursache dafür, dass Jobs öfter laufen als beabsichtigt.

→ Alle Wissenstexte ansehen