Toolyard

Was ist ein Cron-Ausdruck?

Die fünf Felder

Ein Cron-Ausdruck besteht aus fünf durch Leerzeichen getrennten Feldern, die einem Zeitplaner sagen, wann eine Aufgabe laufen soll. Der Reihe nach, von links nach rechts:

Minute0-59
Stunde0-23
Tag des Monats1-31
Monat1-12
Wochentag0-6 (Sonntag = 0)

Die Aufgabe läuft, wenn die aktuelle Zeit zu jedem Feld passt.

Sonderzeichen

  • * jeder Wert.
  • , eine Liste: 1,15 ist der 1. und der 15.
  • - ein Bereich: 1-5 ist im letzten Feld Montag bis Freitag.
  • / eine Schrittweite: */10 im Minutenfeld ist alle 10 Minuten.

Häufige Zeitpläne

*/5 * * * *Alle 5 Minuten
0 * * * *Jede volle Stunde
0 0 * * *Jeden Tag um Mitternacht
30 8 * * 1-5Werktags um 08:30
0 0 1 * *Um Mitternacht am 1. jedes Monats
0 3 * * 0Jeden Sonntag um 03:00

Füge einen beliebigen Ausdruck in Cron-Ausdruck erklären ein, um ihn in Worten zu lesen und seine nächsten Ausführungen zu sehen.

Typische Stolperfallen

  • Zeitzone: Cron nutzt die Uhr des Servers, die oft auf UTC steht.
  • Tag des Monats und Wochentag zusammen: Sind beide gesetzt, läuft die Aufgabe, wenn einer von beiden passt, nicht beide.
  • Sekunden: Standard-Cron hat kein Sekundenfeld. Manche Systeme wie Quartz und Spring fügen am Anfang eines hinzu, dann sind es sechs Felder.

Ausdrücke, die nicht tun, was sie scheinen

AusdruckGemeintLäuft tatsächlich
0 9 1-7 * 109:00 am ersten Montag09:00 an jedem der Tage 1 bis 7 und an jedem Montag
*/15 9-17 * * 1-5Alle 15 Minuten von 9 bis 17 Uhr09:00 bis 17:45 an Werktagen, einschließlich der Stunde ab 17 Uhr
0 0 31 * *Der letzte Tag im MonatNur in den sieben Monaten mit 31 Tagen
0 0 29 2 *Einmal im JahrNur in Schaltjahren

Für den ersten Montag lass den Job an den Tagen 1 bis 7 laufen und prüfe den Wochentag im Skript.

Kurzformen

Viele cron-Versionen kennen Kurznamen: @hourly, @daily, @weekly, @monthly, @yearly und @reboot, das einmal beim Start des Rechners läuft.

Sommerzeit

Auf einem Server mit Ortszeit kann ein Job zwischen 01:00 und 03:00 in der Nacht der Zeitumstellung ausfallen oder doppelt laufen, je nach cron-Version. Lege wichtige Jobs außerhalb dieser Stunden, oder betreibe den Server in UTC.

Tools in dieser Anleitung

Weitere Anleitungen