2013-05-23 4 views
187

Ich versuche herauszufinden, wie man eine Crontab Job jede Woche am Sonntag laufen. Ich denke das folgende sollte funktionieren, aber ich bin mir nicht sicher, ob ich das richtig verstehe. Ist das Folgende korrekt?Wie pro Woche am Sonntag crontab Job ausgeführt wird

5 8 * * 6 
+6

Die Frage ist, zu 'Sonntag', aber die Antwort ist angenommen zu 'Samstag'. ¿? – inigomedina

+6

Verwenden Sie die Site [https://contab.guru/](https://contab.guru/), um einen beliebigen Cron-Ausdruck zu erstellen. – nbi

Antwort

363

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 

So nach dieser Ihre 5 8 * * 0 würde 08.05 jeden Sonntag laufen.

+104

Um besser lesbar zu sein, können Sie einen von 'Sonne, Montag, Dienstag, Mittwoch, Donnerstag, Freitag oder Samstag 'für den Tag verwenden. Dies erspart Ihnen auch die Wahl zwischen "0" und "7" für Sonntag. – flu

30

Folgendes ist das Format der Crontab-Datei.

{minute} {Stunde} {day-of-month} {month} {day-of-Woche} {user} {path-to-Shell-Skript}

Also, jeden Sonntag läuft an Mitternacht (Sonntag ist 0 in der Regel, 7 in einigen seltenen Fällen):

0 0 * * 0 root /path_to_command 
+0

Wählen Sie aus, wie Sie den Befehl angeben, der jedes Mal ausgeführt werden soll. (Die Benutzerspalte muss jedoch bei der Bearbeitung mit dem "crontab" -Befehl weggelassen werden.) –

119

einen cron am Sonntag ausgeführt haben Sie entweder von diesen verwenden können:

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

Wo 5 8 steht für die Zeit der Tag, an dem das passiert: 8:05.

Im Allgemeinen, wenn Sie etwas am Sonntag ausführen möchten, stellen Sie einfach sicher, dass die 5. Spalte entweder oder Sun enthält. 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 immer crontab.guru als Editor verwenden, können Sie Ihre Cron-Ausdrücke zu überprüfen.

+8

Nur um anderen zu helfen, den dummen Fehler, den ich gerade gemacht habe, zu vermeiden und sicherzustellen, dass Sie die Minute auf etwas anderes als * setzen führe jede Minute dieser Stunde aus! – user2924019

+2

crontab.guru ist so nützlich! Danke für die Freigabe – Nadir

3

Wenn Sie Ihre Cron-Werte angeben, müssen Sie sicherstellen, dass Ihre Werte in den Bereichen liegen. Zum Beispiel verwenden einige Cron einen 0-7 Bereich für den Wochentag, wo sowohl 0 als auch 7 Sonntag darstellen. Wir nicht.

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

"wir" ... wer? Welches Programm und welche Version? – Massimo

0

10 * * * Sun

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. 
+0

Herzlichen Glückwunsch zu Ihrer ersten Antwort bei StackOverflow! Bitte überprüfen Sie [Antwortleitfaden] (https://stackoverflow.com/help/how-to-answer). Zum Beispiel sollte die Antwort in der Regel einige neue Informationen enthalten, die in vorhandenen Antworten fehlen. – doz10us

+2

Dies wird 24 Mal am Sonntag laufen, 10 Minuten nach der vollen Stunde. –