Cron-sintaxis explica: Die 5 Felder meistern
Die Fünf-Feld-sintaxis de Cron es täuschend simple, pero unglaublich mächtig. Dieser Guía zerlegt jedes Feld, jedes Sonderzeichen y la Regeln, la bestimmen, wie sie kombiniert werden, para Zeitpläne de 'jede Minute' hasta 'zweiter Dienstag ungerader Monate para 3:47 Uhr' a crear.
Die fünf Felder
Jeder Cron-Ausdruck besteht desde genau fünf Feldern en de una bestimmten Reihenfolge: Minute Stunde Tag-des-Monats Monat Wochentag. Das Verständnis, was jedes Feld steuert y welchen gültigen Bereich es hat, es para la Konstruktion korrekter Ausdrücke unverzichtbar.
Das Minutenfeld (0-59) steuert, en welcher Minute el Stunde el Job läuft. "0" significa a la vollen Stunde (:00), "30" significa a la halben Stunde (:30), y "*" significa jede Minute. Dies es la granularste Kontrolle, la Cron ofrece - pueden Jobs no en Sub-Minuten-Intervallen con estándar-Cron planen.
Das Stundenfeld (0-23) utiliza 24-Stunden-Zeit. "0" es Mitternacht, "12" es Mittag y "23" es 23 Uhr. Es no hay AM/PM-Notation; Cron versteht solo 24-Stunden-formato. Wenn 14 Uhr möchten, usar "14". Wenn 2 Uhr möchten, usar "2" (oder "02", führende Nullen son optional y serán ignoriert).
Das Tag-des-Monats-Feld (1-31) gibt an, an welchem Tag(en) del Monats ausgeführt serán soll. "1" es el erste del Monats, "15" es la Mitte y "31" es el letzte Tag para Monate con 31 Tagen. Seien vorsichtig con datos 29-31, da no alle Monate diese Tage haben. Ein Job, el para el 31. geplant ist, será en Monaten con solo 30 Tagen no ausgeführt.
Das Monatsfeld (1-12) steuert, en welchen Monaten el Job ausgeführt wird. "1" es Januar, "12" es Dezember. algunos Cron-implementaciónen akzeptieren dreistellige Monatsabkürzungen wie "jan" o "JAN", pero numerische valore serán universell soporta y son para Portabilität empfohlen.
Das Wochentagsfeld (0-6 o 1-7, je después de implementación) gibt an, an welchen Wochentagen ausgeführt serán soll. estándar-Cron utiliza 0 para Sonntag, 1 para Montag hasta 6 para Samstag. algunos implementaciónen akzeptieren también 7 para Sonntag, was sowohl 0 como también 7 para Sonntag gültig macht. Cómo Monate akzeptieren einige Cron-Varianten Abkürzungen (sun, mon, tue usw.), pero numerische valore son en el sichersten.
Das Verständnis, wie diese Felder interagieren, es entscheidend. Wenn sowohl Tag del Monats como también Wochentag angegeben son (keine Wildcards), läuft el Job, si una el Bedingungen wahr es (ODER-Logik, no UND). Dies verwirrt viele Benutzer, la erwarten, que "0 0 13 * 5" "am Freitag, el 13." läuft, si es tatsächlich "am 13. jeden Monats ODER jeden Freitag" läuft.
Sonderzeichen y Operatoren
Die Kraft de Cron kommt de Sonderzeichen, la es Ihnen erposibleen, complejoe Zeitpläne prägnant auszudrücken. Das Sternchen (*) significa "jeder posiblee valor" y es el häufigste Sonderzeichen. Im Minutenfeld significa * jede Minute (0-59). Im Monatsfeld significa * jeden Monat (1-12).
Der Komma-Operator (,) listet mehrere spezifische valore auf. "0,15,30,45" en el Minutenfeld läuft para :00, :15, :30 y :45 jeder Stunde. "1,15" en el Tag-des-Monats-Feld läuft en el 1. y 15. pueden so viele valore auflisten, wie benötigen: "1,3,5,7,9,11" para ungerade Tage.
Der Bindestrich (-) erstellt Bereiche aufeinanderfolgender valore. "1-5" en el Wochentagsfeld significa Montag hasta Freitag. "9-17" en el Stundenfeld significa 9 Uhr hasta 17 Uhr. Bereiche son einschließlich - beide Endpunkte son enthantiguoen. "1-3" significa 1, 2 y 3.
Der Schrägstrich (/) erstellt Schrittwerte o Intervalle. Das formato es "*/N" o "Bereich/N". "*/5" en el Minutenfeld significa "alle 5 Minuten" (0, 5, 10, 15, ..., 55). "*/2" en el Stundenfeld significa "alle 2 Stunden" (0, 2, 4, 6, ..., 22). pueden Schritte con Bereichen kombinieren: "10-50/5" significa 10, 15, 20, 25, 30, 35, 40, 45, 50.
Diese Operatoren pueden en a un einzigen Feld kombiniert werden. "1-5,10,15,20-25" es gültig y gibt 1 hasta 5, 10, 15 y 20 hasta 25 an. "*/10,55" significa alle 10 Minuten plus spezifisch para :55 (also 0, 10, 20, 30, 40, 50, 55).
algunos erweiterte Cron-implementaciónen unterstützen zusätzliche Sonderzeichen. "L" (last) en el Tag del Monats significa el letzten Tag del Monats. "W" (weekday) findet el nächsten Wochentag a a un bestimmten Datum. "#" gibt el N-te Vorkommen de un Tages an (wie "2. Dienstag"). Diese Erweiterungen son mächtig, pero no universell soporta - estándar-Cron contiene sie nicht.
Das Fragezeichen (?) erscheint en einigen Cron-implementaciónen como Alias para "*" en Tag-des-Monats- o Wochentagsfeldern. Es existiert hauptsächlich a la Klarheit: la Verwendung de "?" en a un Feld y a un spezifischen valor en el anderen macht deutlich, que solo un Tagestyp-Feld einschränken. estándar-Cron soporta "?" nicht; usar stattdessen "*".
Das Verständnis de Operator-Vorrang y Kombinationsregeln verhindert sintaxisfehler. Bereiche deben aufsteigend sein (1-5, no 5-1). Schrittwerte deben positiv sein. listan deberían valore innerhalb del gültigen Bereichs del Feldes haben. Die meisten Cron-implementaciónen validar Ihre sintaxis no hasta a la Ausführung, also es pruebaen entscheidend.
Häufige sintaxismuster
Die Beherrschung einiger häufiger sintaxismuster deckt la másheit el realen Planungsanforderungen ab. Diese Bausteine pueden para fast jeden Zeitplan kombiniert y angepasst werden.
Für simplee regelmäßige Intervalle usar Schrittsyntax: "*/N * * * *" läuft alle N Minuten. "0 */N * * *" läuft alle N Stunden (bei Minute 0). Dieses Muster es üblich para Überwachung, API-Abfragen o periodische Aufräumaufgaben.
Für tägliche Jobs a bestimmten Zeiten usar "M H * * *", wobei M la Minute y H la Stunde ist. "0 2 * * *" läuft para 2:00 Uhr täglich. "30 14 * * *" läuft para 14:30 Uhr täglich. Die Wildcards en Monats- y beiden Tagesfeldern bedeuten "jeden Tag".
Für reine Wochentagsjobs usar "M H * * 1-5". "0 9 * * 1-5" läuft para 9 Uhr Montag hasta Freitag. Dieses Muster es unverzichtbar para Geschäftstag-nur-Aufgaben wie el Verenviar de Wochentagsberichten o el Ausführen de Integrationen con externen Geschäftssystemen, la solo an Wochentagen trabajar.
Für bestimmte Wochentage usar "M H * * D", wobei D 0-6 ist. "0 0 * * 0" läuft sonntags para Mitternacht. "0 18 * * 5" läuft freitags para 18 Uhr. másere Tage funcionan auch: "0 8 * * 1,3,5" läuft montags, mittwochs y freitags para 8 Uhr.
Für monatliche Jobs usar "M H D * *", wobei D el Tag del Monats ist. "0 0 1 * *" läuft en el ersten jeden Monats para Mitternacht. "0 12 15 * *" läuft en el 15. jeden Monats para 12 Uhr, perfekt para Mitte-Monats-Verarbeitung.
Für bestimmte Monate o Jahreszeiten fügen Monatsspezifikation hinzu: "M H D M *". "0 0 1 1 *" läuft jährlich en el 1. Januar. "0 0 1 1,4,7,10 *" läuft vierteljährlich. "0 0 1 6-8 *" läuft en el ersten de Juni, Juli y August (Sommermonate).
Für complejoe Zeitpläne kombinieren Operatoren kreativ. "0 9-17/2 * * 1-5" läuft para 9, 11, 13, 15 y 17 Uhr an Wochentagen - alle 2 Stunden mientras el Geschäftszeiten. "*/15 9-17 * * 1-5" läuft alle 15 Minuten, pero solo mientras el Geschäftszeiten an Wochentagen.
Wenn un Zeitplan benötigen, el no a diesen Mustern passt, zerlegen ihn en Komponenten. Denken darüber nach, wann er laufen debería (Zeit), wie oft (Intervall), welche Tage (Wochentag), welche datos (Tag del Monats) y welche Monate (Monat). Konstruieren dann jedes Feld entsprechend diesen Einschränkungen.
Probar la Herramienta
Crontab Generator