Cronjobs werden zur Ausführung in wiederkehrenden Intervallen geplant, die in einem Format angegeben werden, das auf unix-cron basiert. In Zeitplänen können Sie festlegen, ob der Job mehrmals am Tag, an bestimmten Tagen oder in bestimmten Monaten ausgeführt werden soll. (Obwohl wir die Verwendung nicht mehr empfehlen, wird das Planen eines Jobs durch Erstellen einer cron.yaml
-Datei für vorhandene Jobs weiterhin unterstützt.)
Cloud Scheduler unterstützt auch das Planen von Jobs in einem besser lesbaren Format. Weitere Informationen finden Sie in diesem Dokument unter Alternatives Jobformat.
Cronjob-Format
Sie können entweder die Google Cloud Console, die Google Cloud CLI oder die Cloud Scheduler REST API verwenden, um Ihren Zeitplan festzulegen.
Ein Zeitplan wird im Unix-Cron-Stringformat (* * * * *
) definiert, bei dem es sich um einen Satz von fünf Feldern in einer Zeile handelt, der angibt, wann der Job ausgeführt werden soll.
Die Zeitfelder haben das folgende Format und die folgenden möglichen Werte und müssen in dieser Reihenfolge angegeben werden:
|------------------------------- Minute (0-59) | |------------------------- Hour (0-23) | | |------------------- Day of the month (1-31) | | | |------------- Month (1-12; or JAN to DEC) | | | | |------- Day of the week (0-6; or SUN to SAT; or 7 for Sunday) | | | | | | | | | | * * * * *
Feld | Format gültiger Werte |
---|---|
Minute | 0–59 |
Stunde | 0–23 |
Day of the month | 1–31 |
Monat | 1–12 (oder JAN bis DEC) |
Wochentag | 0–6 (oder SUN bis SAT oder 7 für Sonntag) |
Minute:Gibt an, wie viele Minuten nach Beginn der Stunde Ihr Job ausgeführt wird. Wenn die Minute beispielsweise auf
0
festgelegt ist, wird der Job zu Beginn der Stunde ausgeführt, da dies 0 Minuten nach der Stunde ist. Wenn es also 8:00 Uhr ist, wird der Job um 8:00 Uhr ausgeführt.Stunde:Gibt an, wie viele Stunden nach Mitternacht Ihr Job ausgeführt wird. Die Angabe wird auf die nächste volle Stunde abgerundet, da die verbleibenden Minuten im Feld
minute
angegeben werden. Mitternacht ist0
und Mittag ist12
. Wenn die Stunde beispielsweise auf0
festgelegt ist, wird der Job um Mitternacht ausgeführt (da dies 0 Stunden nach Mitternacht ist).Tag des Monats:Gibt das Kalenderdatum des Monats an. Beispiel:
1
für den ersten Tag des Monats. In Cloud Scheduler wirdL
nicht als letzter Tag des Monats unterstützt.Monat:Gibt den Monat an. Geben Sie die Monatsnummer oder die ersten drei Buchstaben des Monatsnamens in Großbuchstaben an. Beispiel:
1
für Januar oder, gleichwertig,JAN
.Wochentag:Gibt den Wochentag an. Montag ist beispielsweise
1
und Dienstag ist2
. Sonntag kann entweder durch0
oder7
angegeben werden. Geben Sie den Wochentag entweder als Zahl oder mit den ersten drei Buchstaben des Wochentagsnamens in Großbuchstaben an (z. B.SUN
für Sonntag).- Dieses Feld wird als inklusives
OR
mit dem Feldday of the month
ausgewertet, sofern eines dieser Felder nicht mit dem Sternchen (*
) als uneingeschränkt gekennzeichnet ist. Wenn beispielsweise der Tag des Monats auf1
und der Wochentag aufSAT
festgelegt ist, wird der Job am ersten Tag des Monats und an jedem Samstag des Monats ausgeführt, auch wenn der erste Tag des Monats kein Samstag ist. Wenn der Wochentag nicht eingeschränkt ist (auf*
festgelegt), wird der Job nur am ersten Tag des Monats ausgeführt.
- Dieses Feld wird als inklusives
Übereinstimmung mit allen Werten
Wenn alle Werte für ein Feld abgeglichen werden sollen, verwenden Sie das Sternchen: *
. Wenn ein Feld auf das Sternchen gesetzt ist, entspricht es allen gültigen Werten für dieses Feld, sofern die anderen Feldbedingungen erfüllt sind. Wenn Sie ein Feld auf das Sternchen setzen, wird es manchmal als uneingeschränkt bezeichnet, da es nicht auf einen bestimmten Wert beschränkt ist.
Hier sind zwei Beispiele, in denen das Feld „Minute“ nicht eingeschränkt wird:
* 0 1 1 1
: Der Job wird jede Minute der Mitternachtsstunde am 1. Januar und an Montagen ausgeführt.* * * * *
: Der Job wird jede Minute ausgeführt (jeder Stunde, jedes Tages des Monats, jedes Monats, jedes Wochentags), da auch jedes dieser Felder uneingeschränkt ist.
Das Sternchen entspricht einem Sonderfall eines Bereichs, wobei der Bereich mit dem ersten gültigen Wert für das Feld beginnt und mit dem letzten gültigen Wert für das Feld endet (z. B. 0-59
für das Feld „Minute“).
Übereinstimmung mit einem Bereich
Wenn Sie einen Wertebereich abgleichen möchten, geben Sie die Start- und Endwerte an und trennen Sie sie durch einen Bindestrich (-
). Der Bereich darf keine Leerzeichen enthalten. Die Bereiche sind inklusive. Die erste Zahl muss kleiner als die zweite Zahl sein. Wenn Sie abgekürzte Namen für den Monat oder Wochentag verwenden (z. B. JAN
anstelle von 1
für den ersten Monat des Jahres), muss der erste Wert früher im Monat oder in der Woche liegen als der zweite Wert.
Die folgenden gleichwertigen Beispiele werden montags, dienstags, mittwochs, donnerstags und freitags um Mitternacht ausgeführt (für alle Monate):
0 0 * * 1-5
0 0 * * MON-FRI
Abgleich einer Liste
Listen können beliebige gültige Werte für das Feld enthalten, einschließlich Bereichen.
Geben Sie die Werte durch Kommas (,
) getrennt an. Die Liste darf keine Leerzeichen enthalten.
Beispiele:
0 0,12 * * *
: Der Job wird um Mitternacht und um 12:00 Uhr ausgeführt.0-5,30-35 * * * *
: Der Job wird in den ersten fünf Minuten jeder halben Stunde ausgeführt (zur vollen Stunde und um halb).
Werte in einem Bereich überspringen
Sie können Werte in einem Bereich überspringen, indem Sie eine Rate angeben, mit der der Bereich durchlaufen werden soll. Dies wird manchmal auch als Verwendung einer Stufenfunktion (oder eines Stufenwerts oder Ratenausdrucks) bezeichnet. Geben Sie dazu den Bereich an, gefolgt vom Schrägstrich (/
) und der Rate, mit der Sie durch den Bereich springen möchten.
Mit dem Sternchen (*
) können Sie den Bereich aller Werte für das Feld angeben.
Wenn Sie das Sternchen verwenden, ist der erste Wert im Bereich 0 für die Felder „Minute“, „Stunde“ und „Wochentag“ (Sonntag) und 1 für die Felder „Tag des Monats“ und „Monat“.
Der Schrittwert darf nicht größer als der größtmögliche Wert für das Feld sein.
Der Standardschritt ist 1. Die Stufenfunktion /1
entspricht also dem Fall, in dem keine Stufenfunktion verwendet wird.
Beispielbereiche, in denen Stufenfunktionen verwendet werden:
*/2
: Dies ist eine gültige Stufenfunktion für jedes Feld. Das Feld „Minute“ entspricht 0, 2, 4, …, 58. Für die Stunde entspricht sie 0, 2, 4, …, 22. Für den Tag des Monats entspricht er 1, 3, 5, …, 31 (für einen Monat mit 31 Tagen). Für den Monat entspricht er 1, 3, 5, …, 11. Für den Wochentag entspricht sie 0, 2, 4, 6.0-12/2
: Dies ist eine gültige Schrittfunktion für die Felder „Minute“ und „Stunde“. Sie entspricht 0, 2, 4, …, 12.
Beispiele für Zeitpläne mit Stufenfunktionen:
*/2 * * * *
: Der Job wird alle zwei Minuten ausgeführt.0 0-12/2 * * *
: Der Job wird alle zwei Stunden zur vollen Stunde ausgeführt. Die erste Ausführung erfolgt um Mitternacht. Die letzte Ausführung erfolgt um 12:00 Uhr.
Beispielzeitpläne
Die folgende Tabelle enthält einige Beispiele für cron-Job-Zeitpläne und ihre Beschreibung:
Planen | Cronjob-Format | Erklärung |
---|---|---|
Jede Minute | * * * * * |
Wird jede Minute ausgeführt. Beispiel: 9:00 Uhr, 9:01 Uhr, 9:02 Uhr usw. |
Stündlich | 0 * * * * |
Wird stündlich ausgeführt. Beispiele: 9:00 Uhr, 10:00 Uhr, 11:00 Uhr usw. |
Täglich | 0 0 * * * |
Wird jeden Tag um 00:00 Uhr ausgeführt. |
Jeden Wochentag (Mo–Fr) |
Folgendes ist äquivalent:
|
Wird montags, dienstags, mittwochs, donnerstags und freitags um 00:00 Uhr ausgeführt. |
Jede Woche | Folgendes ist äquivalent:
|
Wird sonntags um 12:00 Uhr (00:00 Uhr im 24-Stunden-Format) ausgeführt. |
Monatlich | 0 0 1 * * |
Wird am ersten Tag des Monats um 00:00 Uhr ausgeführt. |
Jedes Quartal | Folgendes ist äquivalent:
|
Die Ausführung erfolgt am ersten Tag des Quartals um 00:00 Uhr (12:00 AM) bei einem standardmäßigen vierteljährlichen Zeitplan: 1. Januar, 1. April, 1. Juli und 1. Oktober. |
Jedes Jahr | Folgendes ist äquivalent:
|
Wird am ersten Tag des ersten Monats des Jahres (1. Januar) um 00:00 Uhr ausgeführt. |
Zeitzone
Sie können die Zeitzone für die Auswertung des Zeitplans entweder in derGoogle Cloud -Konsole (wählen Sie auf der Seite Job erstellen eine Zeitzone aus der Liste aus) oder über das Flag gcloud
--time-zone
beim Erstellen des Jobs auswählen.
Der Wert dieses Felds muss die in der tz-Datenbank verwendete Zeitzonenabkürzung sein.
Die Standardzeitzone ist UTC
.
In einigen Zeitzonen kann die Sommerzeit dazu führen, dass Jobs unerwartet ausgeführt werden oder nicht ausgeführt werden. Dies liegt daran, dass Cloud Scheduler zur tatsächlich verstrichenen Zeit ausgeführt wird. In Fällen, in denen eine Zeit zweimal auftreten kann (z. B. wenn die Uhren rückwärts springen) und Ihr Job zu diesem Zeitpunkt geplant ist, kann es bei Ihrem geplanten Job zu Ausführungsanomalien kommen.
Wenn für Ihren Job ein sehr spezifischer Rhythmus erforderlich ist, können Sie eine Zeitzone auswählen, die die Sommerzeit nicht berücksichtigt. Für Cloud Scheduler wird UTC empfohlen, um das Problem ganz zu vermeiden.
Alternatives Jobformat
Sie können ein besser lesbares Zeitangabeformat namens „groc“ verwenden, das eine Alternative zu Cron-Ausdrücken bietet.
Wenn Sie einen Jobzeitplan mit groc angeben, müssen Sie entweder die gcloud CLI verwenden oder eine direkte Anfrage an die Cloud Scheduler API senden.
Einige wiederkehrende Ereignisse lassen sich mit Cron nur schwer angeben, z. B. der „dritte Dienstag jedes Monats“. In solchen Fällen können Sie stattdessen Konstrukte wie die folgenden Beispiele verwenden:
first sunday of month 12:00
2nd,3rd tue,wed,thu of feb,aug 13:50
every wed of december 00:00
1st friday of quarter 9:00
second,4th tue,thursday of 3rd month of quarter 18:30
1,3,4,7,11,18,29 of jan,jul 12:34
03 of month 12:34
every day 09:00
every sun,tue,thu 9:00
every 48 hours
every 5 minutes
every 60 minutes on mon,wed
every minute
Weitere Informationen zur Syntax finden Sie unter Cronjob-Zeitplan definieren.