Cron-Ausdruck-Erklärer
Füge einen cron-Ausdruck ein und erhalte eine Erklärung in einfachem Englisch. Unterstützt standard 5-Feld- und 6-Feld-Formate (mit Sekunden).
Beispiele (klicken zum Ausprobieren)
0 0 * * *— täglich um Mitternacht*/5 * * * *— alle 5 Minuten0 9 * * MON-FRI— werktags morgens um 9 Uhr0 0 1 * *— am Ersten jedes Monats um Mitternacht0 0 * * 0— jeden Sonntag um Mitternacht15 2 * * *— täglich um 2:15 Uhr0 */6 * * *— alle 6 Stunden30 3 1-7 * 1— am ersten Montag des Monats um 3:30 Uhr
- Tippe oder füge einen cron-Ausdruck in das Eingabefeld oben ein.
- Lies die Erklärung in einfachem Englisch, die darunter erscheint.
- Klicke auf einen Beispiel-Chip, um ihn ins Eingabefeld zu setzen und dekodiert zu sehen.
- Behebe jeden rot angezeigten Parse-Fehler und iteriere, bis die Erklärung deiner Absicht entspricht.
Was macht es?
Der Erklärer nimmt einen standard Unix cron-Ausdruck (5 Felder) oder einen Quartz-Stil-Ausdruck mit Sekunden (6 Felder) und gibt eine menschliche Beschreibung zurück wie "At 09:00 AM, Monday through Friday." Er unterstützt die gängigen Operatoren — *, ",", - und / — zusammen mit benannten Monaten (JAN-DEC) und benannten Wochentagen (SUN-SAT). Das Ergebnis aktualisiert sich bei jedem Tastendruck, damit du einen Ausdruck schnell iterieren kannst.
Beispiel
Ein typischer Job zu Geschäftszeiten:
0 9 * * MON-FRI Dekodiert:
At 09:00 AM, Monday through Friday Ein spezifischerer 6-Feld-Quartz-Ausdruck mit Sekunden:
0 30 2 ? * MON Dekodiert (jeden Montag um 02:30:00).
Cron-Format
┌───────── Minute (0 - 59) │ ┌─────── Stunde (0 - 23) │ │ ┌───── Tag des Monats (1 - 31) │ │ │ ┌─── Monat (1 - 12, oder JAN-DEC) │ │ │ │ ┌─ Wochentag (0 - 6, oder SUN-SAT; 0 und 7 bedeuten beide Sonntag) │ │ │ │ │ * * * * *
Warum feuert cron "0 0 * * *" um Mitternacht UTC und nicht zu meiner lokalen Zeit?
Die meisten echten cron-Bugs fallen in eine Handvoll wiederkehrender Fallen:
- Zeitzonendrift. 0 0 * * * feuert um Mitternacht in der Zeitzone des Schedulers. Auf Kubernetes CronJobs und GitHub Actions ist der Standard UTC — setze spec.timeZone oder wandle die Stunde selbst in UTC um.
- 5-Feld vs 6-Feld-Unstimmigkeit. Das Einfügen von 0 0 9 * * MON-FRI (6 Felder) in einen 5-Feld-Scheduler liest die führende 0 als Minute und 0 als Stunde, also feuert der Job um Mitternacht, nicht um 09:00.
- Tag des Monats und Wochentag zusammen. 0 0 15 * MON läuft am 15. und jeden Montag — nicht nur an einem Montag, der auf den 15. fällt. Das ist die ODER-Semantik von Vixie-cron.
- Step startet nicht beim Deploy neu. */10 * * * * feuert um :00, :10, :20, :30, :40, :50 auf der Uhr — nicht zehn Minuten nach deinem letzten Deploy.
- Verwendung von ? in standard cron. Der ?-Platzhalter ist eine Quartz-Erweiterung. Unix cron lehnt ihn ab — verwende stattdessen *.
- Wochentag 0 vs 7. Beide bedeuten Sonntag im klassischen cron, aber manche Parser (altes BSD) akzeptieren nur 0. Wenn Portabilität wichtig ist, verwende SUN.
Operatoren
*— beliebiger Wert,— Liste von Werten (z. B. MON,WED,FRI)-— Bereich (z. B. 1-5)/— Schrittwerte (z. B. */15 = alle 15)
Häufig gestellte Fragen
Was ist der Unterschied zwischen 5-Feld- und 6-Feld-cron?
Standard POSIX cron hat 5 Felder: Minute, Stunde, Tag des Monats, Monat, Wochentag. Die 6-Feld-Variante stellt ein Sekundenfeld voran und wird von Quartz, Spring @Scheduled und vielen Node-cron-Bibliotheken verwendet. Ein 6-Feld-Ausdruck wie "0 0 9 * * MON-FRI" feuert werktags um 9:00:00, während der 5-Feld "0 9 * * MON-FRI" um 9:00 feuert.
Unterstützt das Quartz-Erweiterungen wie L, W und #?
Dieser Erklärer unterstützt den verbreiteten Unix / Vixie cron-Dialekt plus das optionale führende Sekundenfeld. Nur-Quartz-Tokens (L für Letzter, W für Wochentag, # für n-ten Wochentag und der ?-Platzhalter) sind nicht Teil von standard cron und werden nicht garantiert geparst. Wenn du dich darauf verlässt, verwende die Scheduler-spezifische Dokumentation, um den Ausdruck zu verifizieren.
Warum feuert 0 0 * * * zu einer anderen Zeit als ich erwarte?
Cron-Ausdrücke haben keine Zeitzone. Der Job läuft um Mitternacht in der Zeitzone der Maschine oder des Containers, der den Scheduler besitzt. Auf Kubernetes CronJobs, GitHub Actions und AWS EventBridge ist das der Standard UTC. Wenn du lokale Mitternacht willst, setze die Scheduler-Zeitzone explizit (spec.timeZone auf CronJob, TZ-Umgebungsvariable, timezone-Schlüssel in cron.yaml).
Kann ich Tag des Monats und Wochentag kombinieren?
In standard Vixie cron feuert der Job, wenn entweder Tag des Monats oder Wochentag übereinstimmt, sofern beide eingeschränkt sind — es ist ein ODER, kein UND. Also läuft "0 0 15 * MON" am 15. jedes Monats und jeden Montag. Quartz kehrt das um und behandelt ein Feld als erforderlich "?", um die Mehrdeutigkeit aufzulösen.
Wie funktionieren Schrittwerte?
Ein Schritt verwendet die Syntax Bereich/Schritt. "*/15 * * * *" feuert alle 15 Minuten beginnend bei :00. "10-50/20" im Minutenfeld feuert um :10, :30, :50. Schritt bedeutet nicht "alle N ab jetzt" — die Grenzen sind immer am Anfang des Bereichs ausgerichtet, also erwarte nicht, dass ein Schritt mit der aktuellen Zeit driftet.
Speichert ihr die cron-Ausdrücke, die ich hier teste?
Nein. Wir behalten keine Aufzeichnung der Ausdrücke, die du tippst. Was immer du einfügst oder ausprobierst, wird verworfen, wenn du die Seite schließt oder aktualisierst — keine Logs, keine Analyse der Zeitpläne, an denen du arbeitest. Du kannst die developer tools deines Browsers überprüfen, wenn du zusätzliche Sicherheit willst.