Zum Inhalt springen
Tool

Crontab-Generator, der die Zeitumstellung mitrechnet

Fünf Felder zusammenklicken oder tippen, eine IANA-Zeitzone dazu, und du siehst die nächsten zehn Ausführungen als Zeitpunkte. Es ist derselbe Code, mit dem die Zeitplan-Trigger von Browserberg rechnen.

Baue den Ausdruck im Formular oder tippe ihn direkt, zum Beispiel 0 6 1 * * für den Monatsersten um sechs, und wähle die Zone, in der er gemeint ist.

Dieses Tool läuft im Browser und braucht JavaScript.

Beobachtungen, keine Urteile. Deine Eingabe wird für dieses Ergebnis verarbeitet und in ein Nutzungsjournal geschrieben, das die Datenschutzerklärung beschreibt; sonst wird nichts gespeichert.

Was hier gerechnet wird

Ein Crontab-Eintrag besteht aus fünf Feldern: Minute, Stunde, Tag im Monat, Monat, Wochentag. Jedes Feld nimmt einen Wert, einen Bereich (8-17), eine Liste (1,15) oder einen Schritt (*/15); der Stern steht für jeden Wert. 30 7 * * 1-5 heißt also: an Werktagen um 7:30. Wann das in Sekunden seit 1970 ist, sagt der Ausdruck nicht. Dafür braucht es eine Zone.

Zone statt Offset

Der Generator verlangt einen IANA-Namen wie Europe/Berlin und nimmt keinen Offset wie +02:00. Der Name enthält die komplette Regel: an welchem Sonntag die Uhren springen, in welche Richtung, und wie der Offset in jedem beliebigen Jahr war. Ein Offset enthält davon nichts. Ein Tagesjob, der mit +02:00 definiert wurde, läuft ab Ende Oktober eine Stunde zu früh, ohne dass sich am Ausdruck irgendetwas geändert hätte. Die Trigger von Browserberg sind aus demselben Grund so gebaut.

Die beiden Nächte im Jahr

Die zehn Zeitpunkte werden mit wörtlich genommener Wanduhrzeit berechnet. Daraus folgen zwei Sonderfälle, die das Tool ausdrücklich anzeigt statt sie zu verstecken:

  • Uhren zurück (letzter Sonntag im Oktober): Die Stunde von 2:00 bis 3:00 gibt es zweimal. Ein Job um 2:30 läuft einmal, beim ersten Durchgang. Ein zweiter Login auf einem Portal, das nur eine Sitzung zulässt, würde die erste rauswerfen.
  • Uhren vor (letzter Sonntag im März): 2:00 bis 3:00 existiert nicht. Ein Job um 2:30 läuft, sobald die Lücke endet, und fällt nicht für den Tag aus.

Die nächste Ausführung liegt immer strikt nach dem Bezugszeitpunkt. Wer die doppelte Stunde naiv durchläuft, erzeugt Zeitpunkte, die schon vorbei sind, und ein Scheduler ohne diese Sperre würde dieselbe Ausführung endlos neu beanspruchen.

Was der Validator ablehnt

Unter dem Ausdruck stehen Probleme, nicht nur ein rotes Feld. Ein sechstes Feld (die Sekundenspalte aus Quartz und Spring) wird benannt und abgelehnt. Ein Intervall unter fünf Minuten ebenfalls, weil ein Zeitplan-Trigger bei Browserberg nicht häufiger feuert. Ein Wochentag außerhalb von 0 bis 7 oder ein 31. Februar wird als das gemeldet, was es ist.

Was das Tool nicht beurteilt

Die zehn Ausführungen sind berechnet, nicht beobachtet. Das Tool weiß nicht, wie lange dein Job läuft, ob sich zwei Läufe überlappen dürfen oder was mit einer Ausführung passiert, die während einer Störung verpasst wurde. Das entscheiden die Trigger-Einstellungen overlap und catchUp, und egal wie lange ein System aus war, es gibt höchstens eine Nachhol-Ausführung, nie einen Rückstau. Ob Europe/Berlin die richtige Zone für ein Portal ist, das sein Batchfenster nach Lissaboner Zeit schließt, kann dir auch niemand abnehmen. Das Tool macht nur sichtbar, was die Wahl bedeutet.

In vier Schritten zum Zeitplan

  1. Rhythmus festlegen

    Werktags um 7:30 für das Lieferantenportal, jeden Montag um 5:00 für die Preisliste, am Monatsersten um 6:00 für den Abschluss. Formular und Textfeld bleiben synchron.

  2. Zone wählen

    Europe/Berlin für einen deutschen Betrieb, Europe/Vienna oder Europe/Zurich sind dieselben Regeln unter anderem Namen. Ein Offset wird nicht angenommen.

  3. Zeitpunkte prüfen

    Die Liste zeigt jede Ausführung als lokale Uhrzeit und als UTC-Zeitpunkt. Liegt einer in einer Umstellungsnacht, steht daneben, welcher Zeitpunkt gewählt wurde und warum.

  4. Übernehmen

    Ist die Problemliste leer, kopierst du Ausdruck und Zone in einen Zeitplan-Trigger. Beide sind dort getrennte Felder, damit niemand einen Offset in den Ausdruck schmuggelt.

Häufige Fragen zu Crontab

Was ist ein Cron-Ausdruck?

Ein Textmuster aus fünf Feldern, das festlegt, wann ein Job läuft: Minute, Stunde, Tag im Monat, Monat, Wochentag. Es stammt vom Unix-Dienst cron und wird heute von den meisten Schedulern verstanden, auch von den Workflow-Triggern bei Browserberg.

Wie schreibe ich jede Stunde zur halben Stunde?

30 * * * *: Minute 30, jede Stunde, jeder Tag. Für alle zwei Stunden schreibst du 30 */2 * * *.

Was passiert mit meinem Job bei der Zeitumstellung?

Wenn die Uhren zurückgehen, läuft ein Job in der doppelten Stunde einmal. Wenn sie vorgehen, läuft ein Job aus der fehlenden Stunde, sobald die Lücke endet. Beides zeigt dir die Liste der nächsten Ausführungen mit Begründung.

Warum keine Sekunden?

Das sechste Feld ist ein Quartz- und Spring-Dialekt, den cron selbst nicht kennt. Browserberg nutzt fünf Felder, und ein Trigger feuert ohnehin höchstens alle fünf Minuten.

Kann ich den Ausdruck auch in einer Crontab auf meinem Server nutzen?

Ja, die fünf Felder sind Standard. Beachte nur, dass ein klassischer cron-Daemon in der Zone des Servers rechnet und die Umstellungsnächte je nach Implementierung anders behandelt.

Tipp · Wochentag 0 und 7 sind beide Sonntag

Cron zählt Wochentage von 0 (Sonntag) bis 6 (Samstag) und akzeptiert 7 ebenfalls als Sonntag. Ein Bereich 1-5 sind die Werktage; ein Bereich 5-1 ist keiner, und der Validator sagt es dir.

Den ersten Lauf ansehen

Fünf Browserstunden, keine Karte. Workflow veröffentlichen, Zeitplan anhängen, und beim ersten Feuern zusehen.