Wie man jede Woche am Sonntag einen Crontab-Job ausführt


263

Ich versuche herauszufinden, wie man am Sonntag jede Woche einen Crontab-Job ausführt. Ich denke, das Folgende sollte funktionieren, bin mir aber nicht sicher, ob ich es richtig verstehe. Ist das folgende richtig?

5 8 * * 6

7
Die Frage bezieht sich auf "Sonntag", aber die akzeptierte Antwort bezieht sich auf "Samstag". ¿?
Inigomedina

11
Verwenden Sie die Website https://crontab.guru/ , um einen beliebigen Cron-Ausdruck zu erstellen.
nbi

Antworten:


481

Hier ist eine Erklärung des Crontab-Formats.

# 1. Entry: Minute when the process will be started [0-60]
# 2. Entry: Hour when the process will be started [0-23]
# 3. Entry: Day of the month when the process will be started [1-28/29/30/31]
# 4. Entry: Month of the year when the process will be started [1-12]
# 5. Entry: Weekday when the process will be started [0-6] [0 is Sunday]
#
# all x min = */x

Demnach 5 8 * * 0würden Sie jeden Sonntag um 8:05 Uhr laufen.


148
Um besser lesbar zu sein, können Sie eines sun, mon, tue, wed, thu, fri, or satfür den Tag verwenden. Dies erspart Ihnen auch die Wahl zwischen 0oder 7für Sonntag.
Grippe

193

Um einen Cron am Sonntag ausführen zu lassen, können Sie eine der folgenden Methoden verwenden:

5 8 * * 0
5 8 * * 7
5 8 * * Sun

Wo 5 8steht die Tageszeit, zu der dies geschehen wird: 8:05.

Im Allgemeinen, wenn Sie etwas am Sonntag ausführen wollen, so stellen Sie sicher , dass die fünfte Spalte enthält entweder 0, 7oder Sun. Sie hatten 6, also lief es am Samstag.

Das Format für Cronjobs ist:

 +---------------- minute (0 - 59)
 |  +------------- hour (0 - 23)
 |  |  +---------- day of month (1 - 31)
 |  |  |  +------- month (1 - 12)
 |  |  |  |  +---- day of week (0 - 6) (Sunday=0 or 7)
 |  |  |  |  |
 *  *  *  *  *  command to be executed

Sie können crontab.guru jederzeit als Editor verwenden, um Ihre Cron-Ausdrücke zu überprüfen.


14
Nur um anderen zu helfen, den dummen Fehler zu vermeiden, den ich gerade gemacht habe, und stellen Sie sicher, dass Sie die Minute auf etwas anderes als * einstellen, sonst wird sie in jeder Minute dieser Stunde ausgeführt!
user2924019

40

Es folgt das Format der Crontab-Datei.

{Minute} {Stunde} {Tag des Monats} {Monat} {Wochentag} {Benutzer} {Pfad zum Shell-Skript}

Also, um jeden Sonntag um Mitternacht zu laufen (Sonntag ist normalerweise 0, in einigen seltenen Fällen 7):

0 0 * * 0 root /path_to_command

1
Stimmen Sie ab, um zu erwähnen, wie der Befehl angegeben werden soll, der jedes Mal ausgeführt werden soll. (Die Benutzerspalte muss jedoch beim Bearbeiten über den Befehl "crontab" weggelassen werden.)
Joachim Wagner

1
Sonntag Mitternacht ist die 0 Stunde von Montag, dh 0 0 * * 1.
Fred Loney

5

Wenn Sie Ihre Cron-Werte angeben, müssen Sie sicherstellen, dass Ihre Werte innerhalb der Bereiche liegen. Zum Beispiel verwenden einige Cron einen Bereich von 0 bis 7 für den Wochentag, wobei sowohl 0 als auch 7 den Sonntag darstellen. Wir nicht (siehe unten).

Seconds: 0-59
Minutes: 0-59
Hours: 0-23
Day of Month: 1-31
Months: 0-11
Day of Week: 0-6

Referenz: https://github.com/ncb000gt/node-cron


3
"wir, die wir ? Welches Programm und welche Version?
Massimo

Es ist direkt von der Verbindung: D
Mendon Ashwini

2

Cron Job Ausdruck in einer für Menschen lesbaren Weise Crontab Builder


1
Imho, dies ist keine Antwort, da es hier nichts hinzufügt, noch beantwortet es die Frage hier in irgendeiner Weise.
Pankaj


0

10 * * * So.

Position 1 for minutes, allowed values are 1-60
position 2 for hours, allowed values are 1-24
position 3 for day of month ,allowed values are 1-31
position 4 for month ,allowed values are 1-12 
position 5 for day of week ,allowed values are 1-7 or and the day starts at Monday. 

2
Herzlichen Glückwunsch zu Ihrer ersten Antwort bei StackOverflow! Bitte lesen Sie unbedingt den Antwortleitfaden . Beispielsweise sollte die Antwort normalerweise einige neue Informationen enthalten, die in vorhandenen Antworten fehlen.
doz10us

7
Dies wird 24 Mal am Sonntag ausgeführt, 10 Minuten nach der vollen Stunde.
Jens Timmerman


0
* * * * 0 

you can use above cron job to run on every week on sunday, but in addition on what time you want to run this job for that you can follow below concept :

* * * * *  Command_to_execute
- � � � -
| | | | |
| | | | +�� Day of week (0�6) (Sunday=0) or Sun, Mon, Tue,...
| | | +���- Month (1�12) or Jan, Feb,...
| | +����-� Day of month (1�31)
| +������� Hour (0�23)
+��������- Minute (0�59)
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.