Cron-Syntax explicado: Die 5 Felo meistern
Die Fünf-Feld-Syntax de Cron é täuschend simples, mas unglaublich mächtig. Dieser Guia zerlegt jedo Feld, jedo Sonderzeichen e a Regeln, a bestimmen, wie sie kombiniert serão, um Zeitpläne de 'jede Minute' bis 'zweiter Dienstag ungerao Monate um 3:47 Uhr' para erstellen.
Die fünf Felder
Jeo Cron-Ausdruck besteht aus genau fünf Feldern em einer bestimmten Reihenfolge: Minute Stunde Tag-des-Monats Monat Ondechentag. O entendimento, was jedo Feld steuert e welchen gültigen Bereich es tem, é para a Konstruktion korrekter Ausdrücke unverzichtbar.
Das Minutenfeld (0-59) steuert, em welcher Minute o Stunde o Job läuft. "0" bedeutet zur vollen Stunde (:00), "30" bedeutet zur halben Stunde (:30), e "*" bedeutet jede Minute. Dies é a granularste Kontrolle, a Cron bietet - Sie podem Jobs nicht em Sub-Minuten-Intervallen com Standard-Cron planen.
Das Stundenfeld (0-23) verwendet 24-Stunden-Zeit. "0" é Mitternacht, "12" é Mittag e "23" é 23 Uhr. Es gibt kuma AM/PM-Notation; Cron versteht nur 24-Stunden-Format. Wenn Sie 14 Uhr möchten, verweno Sie "14". Wenn Sie 2 Uhr möchten, verweno Sie "2" (oo "02", führende Nullen são optional e wero ignoriert).
Das Tag-des-Monats-Feld (1-31) gibt an, an welchem Tag(en) do Monats ausgeführt wero deveria. "1" é o erste do Monats, "15" é a Mitte e "31" é o letzte Tag para Monate com 31 Tagen. Seien Sie vorsichtig com Daten 29-31, da nicht alle Monate diese Tage têm. Ein Job, o para o 31. geplant ist, será em Monaten com nur 30 Tagen nicht ausgeführt.
Das Monatsfeld (1-12) steuert, em welchen Monaten o Job ausgeführt será. "1" é Januar, "12" é Dezember. Einige Cron-Implementierungen akzeptieren dreistellige Monatsabkürzungen wie "jan" ou "JAN", mas numerische Werte wero universell unterstützt e são para Portabilität empfohlen.
Das Ondechentagsfeld (0-6 ou 1-7, je nach Implementierung) gibt an, an welchen Ondechentagen ausgeführt wero deveria. Standard-Cron verwendet 0 para Sonntag, 1 para Montag bis 6 para Samstag. Einige Implementierungen akzeptieren auch 7 para Sonntag, was sowohl 0 als auch 7 para Sonntag gültig macht. Como Monate akzeptieren einige Cron-Varianten Abkürzungen (sun, mon, tue usw.), mas numerische Werte são am segurosten.
O entendimento, wie diese Felo interagieren, é entscheidend. Wenn sowohl Tag do Monats als auch Ondechentag angegeben são (kuma Wildcards), läuft o Job, wenn uma o Bedingungen wahr é (ODER-Logik, nicht UND). Dies verwirrt viele Benutzer, a erwarten, dass "0 0 13 * 5" "am Freitag, o 13." läuft, wenn es tatsächlich "am 13. jeo Monats ODER jeo Freitag" läuft.
Sonderzeichen e Operatoren
Die Kraft de Cron kommt de Sonderzeichen, a es Ihnen ermöglichen, komplexe Zeitpläne prägnant auszudrücken. Das Sternchen (*) bedeutet "jeo mögliche Wert" e é o frequenteste Sonderzeichen. Im Minutenfeld bedeutet * jede Minute (0-59). Im Monatsfeld bedeutet * jeo Monat (1-12).
Der Komma-Operator (,) listet mehrere spezifische Werte auf. "0,15,30,45" im Minutenfeld läuft um :00, :15, :30 e :45 jeo Stunde. "1,15" im Tag-des-Monats-Feld läuft am 1. e 15. Sie podem so viele Werte auflisten, wie Sie benötigen: "1,3,5,7,9,11" para ungerade Tage.
Der Bindestrich (-) erstellt Bereiche aufeinanderfolgeno Werte. "1-5" im Ondechentagsfeld bedeutet Montag bis Freitag. "9-17" im Stundenfeld bedeutet 9 Uhr bis 17 Uhr. Bereiche são einschließlich - beide Endpunkte são enthalten. "1-3" bedeutet 1, 2 e 3.
Der Schrägstrich (/) erstellt Schrittwerte ou Intervalle. Das Format é "*/N" ou "Bereich/N". "*/5" im Minutenfeld bedeutet "alle 5 Minuten" (0, 5, 10, 15, ..., 55). "*/2" im Stundenfeld bedeutet "alle 2 Stunden" (0, 2, 4, 6, ..., 22). Sie podem Schritte com Bereichen kombinieren: "10-50/5" bedeutet 10, 15, 20, 25, 30, 35, 40, 45, 50.
Diese Operatoren podem em einem einzigen Feld kombiniert serão. "1-5,10,15,20-25" é gültig e gibt 1 bis 5, 10, 15 e 20 bis 25 an. "*/10,55" bedeutet alle 10 Minuten plus spezifisch um :55 (also 0, 10, 20, 30, 40, 50, 55).
Einige erweiterte Cron-Implementierungen unterstützen zusätzliche Sonderzeichen. "L" (last) im Tag do Monats bedeutet o letzten Tag do Monats. "W" (weekday) findet o nächsten Ondechentag para einem bestimmten Datum. "#" gibt o N-te Vorkommen eines Tages an (wie "2. Dienstag"). Diese Erweiterungen são mächtig, mas nicht universell unterstützt - Standard-Cron enthält sie nicht.
Das Fragezeichen (?) erscheint em einigen Cron-Implementierungen als Alias para "*" em Tag-des-Monats- ou Ondechentagsfeldern. Es existiert hauptsächlich zur Klarheit: a Verwendung de "?" em einem Feld e einem spezifischen Wert im anderen macht deutlich, dass Sie nur um Tagestyp-Feld einschränken. Standard-Cron unterstützt "?" nicht; verweno Sie stattdessen "*".
O entendimento de Operator-Vorrang e Kombinationsregeln verhindert Syntaxfehler. Bereiche devem aufsteigend sum (1-5, nicht 5-1). Schrittwerte devem positiv sein. Listen sollten Werte innerhalb do gültigen Bereichs do Feldo têm. Die meisten Cron-Implementierungen validieren Ihre Syntax nicht bis zur Ausführung, also é Testen entscheidend.
Häufige Syntaxmuster
Die Beherrschung einiger frequenteer Syntaxmuster deckt a Mehrheit o realen Planungsanforderungen ab. Diese Baustuma podem para fast jeo Zeitplan kombiniert e angepasst serão.
Für simplese regelmäßige Intervalle verweno Sie Schrittsyntax: "*/N * * * *" läuft alle N Minuten. "0 */N * * *" läuft alle N Stuno (bei Minute 0). Dieses Muster é üblich para Überwachung, API-Abfragen ou periodische Aufräumaufgaben.
Für tägliche Jobs para bestimmten Zeiten verweno Sie "M H * * *", wobei M a Minute e H a Stunde ist. "0 2 * * *" läuft um 2:00 Uhr täglich. "30 14 * * *" läuft um 14:30 Uhr täglich. Die Wildcards em Monats- e beio Tagesfeldern bedeuten "jeo Tag".
Für ruma Ondechentagsjobs verweno Sie "M H * * 1-5". "0 9 * * 1-5" läuft um 9 Uhr Montag bis Freitag. Dieses Muster é unverzichtbar para Geschäftstag-nur-Aufgaben wie o Verseno de Ondechentagsberichten ou o Ausführen de Integrationen com externen Geschäftssystemen, a nur an Ondechentagen arbeiten.
Für bestimmte Ondechentage verweno Sie "M H * * D", wobei D 0-6 ist. "0 0 * * 0" läuft sonntags um Mitternacht. "0 18 * * 5" läuft freitags um 18 Uhr. Mehrere Tage funktionieren auch: "0 8 * * 1,3,5" läuft montags, mittwochs e freitags um 8 Uhr.
Für monatliche Jobs verweno Sie "M H D * *", wobei D o Tag do Monats ist. "0 0 1 * *" läuft am ersten jeo Monats um Mitternacht. "0 12 15 * *" läuft am 15. jeo Monats um 12 Uhr, perfekt para Mitte-Monats-Verarbeitung.
Für bestimmte Monate ou Jahreszeiten fügen Sie Monatsspezifikation hinzu: "M H D M *". "0 0 1 1 *" läuft jährlich am 1. Januar. "0 0 1 1,4,7,10 *" läuft vierteljährlich. "0 0 1 6-8 *" läuft am ersten de Juni, Juli e August (Sommermonate).
Für komplexe Zeitpläne kombinieren Sie Operatoren kreativ. "0 9-17/2 * * 1-5" läuft um 9, 11, 13, 15 e 17 Uhr an Ondechentagen - alle 2 Stuno während o Geschäftszeiten. "*/15 9-17 * * 1-5" läuft alle 15 Minuten, mas nur während o Geschäftszeiten an Ondechentagen.
Wenn Sie einen Zeitplan benötigen, o nicht para diesen Mustern passt, zerlegen Sie ihn em Komponenten. Denken Sie darüber nach, wann er laufen deveria (Zeit), wie oft (Intervall), welche Tage (Ondechentag), welche Daten (Tag do Monats) e welche Monate (Monat). Konstruieren Sie dann jedo Feld entsprechend diesen Einschränkungen.
Testar a Ferramenta
Crontab Generator