Zum Inhalt springen
OpsKit

Cron-Ausdruck-Parser

Fügen Sie einen Cron-Ausdruck ein und sehen Sie, wann er tatsächlich läuft. Jedes Feld wird aufgeschlüsselt, und die Zeiten erscheinen in der Zeitzone Ihres Schedulers — genau dort entstehen die meisten Cron-Überraschungen.

Gängige Zeitpläne

Nächste Ausführungen

Feldaufschlüsselung

FeldWertTrifft zu auf
Minute00
Stunde99
Tag des Monats*jeder Wert
Monat*jeder Wert
Wochentag1-5Mo, Di, Mi, Do, Fr

Läuft vollständig im Browser. Diese Seite ist eine statische Datei. Was Sie eingeben, bleibt im Tab, wird nie an einen Server geschickt und ist beim Schließen verschwunden — ein echtes Token oder eine echte Konfiguration einzufügen ist also unbedenklich.

Wann man das braucht

  • Beim Schreiben eines Kubernetes-CronJobs, wenn Sie sicherstellen wollen, dass er um 9 Uhr Ortszeit läuft und nicht um 9 Uhr UTC.
  • Beim Durchsehen einer geerbten crontab, in der niemand mehr weiß, was 30 2 * * 0 bedeutet.
  • Beim Prüfen, ob ein Batch-Job und das Backup-Fenster im nächsten Monat kollidieren.

Durchgerechnete Beispiele

Jeden Werktag um 09:00

Eingabe
0 9 * * 1-5
Ergebnis
Mo–Fr um 09:00

Der Wochentag läuft von 0 bis 6, Sonntag ist 0. Sowohl 0 als auch 7 bedeuten Sonntag.

Alle 15 Minuten während der Geschäftszeit

Eingabe
*/15 9-18 * * 1-5
Ergebnis
09:00, 09:15 … 18:45, nur werktags

Die Schrittweite gilt innerhalb des Bereichs, der Job stoppt also nach 18:45 statt die ganze Nacht zu laufen.

Der Ausdruck, der alle überrascht

Eingabe
0 0 1 * MON
Ergebnis
Am 1. jedes Monats UND an jedem Montag

Sind beide Tagesfelder eingeschränkt, verknüpft Cron sie mit ODER, statt beide zu verlangen.

Wo es meistens schiefgeht

Annehmen, der Container laufe in Ihrer Zeitzone

Ein Kubernetes-CronJob ohne timeZone-Feld nutzt die Zone des Controllers, üblicherweise UTC. Ein Zeitplan für 09:00 läuft dann um 11:00 deutscher Sommerzeit.

`*/5` im Stundenfeld als alle fünf Stunden lesen

Eine Schrittweite teilt den gesamten Bereich ab 0, */5 im Stundenfeld bedeutet also 0, 5, 10, 15, 20 Uhr — nicht alle fünf Stunden ab jetzt.

Tag des Monats und Wochentag vermischen

Beides einzuschränken lässt den Zeitplan häufiger auslösen, nicht seltener. Lassen Sie eines auf *, sofern Sie nicht wirklich die Vereinigung wollen.

Häufige Fragen

Wie viele Felder hat ein Cron-Ausdruck?

Standard-Unix-Cron und Kubernetes-CronJob nutzen 5: Minute, Stunde, Tag des Monats, Monat, Wochentag. AWS EventBridge ergänzt ein sechstes Jahresfeld und verlangt ein ? in einem der beiden Tagesfelder. Quartz stellt Sekunden voran, damit 6 oder 7.

Warum läuft mein Kubernetes-CronJob zur falschen Stunde?

Ohne spec.timeZone wird der Zeitplan in der Zeitzone des kube-controller-manager interpretiert — meist UTC. Setzen Sie sie explizit, oder schreiben Sie den Zeitplan in UTC und dokumentieren Sie das.

Was bedeutet @daily?

Es ist die Kurzform für 0 0 * * *, also Mitternacht an jedem Tag. Die weiteren Kürzel sind @hourly, @weekly, @monthly und @yearly. @reboot ist anders: Es läuft beim Systemstart und hat keinen Zeitplan.

Verwandte Werkzeuge