2013-05-23 5 views
187

Sto cercando di capire come eseguire un lavoro crontab ogni settimana di Domenica. Penso che il seguente dovrebbe funzionare, ma non sono sicuro se ho capito bene. È il seguente corretto?Come eseguire il lavoro crontab ogni settimana di Domenica

5 8 * * 6 
+6

La questione è di circa 'domenica', ma la risposta accettata è di circa 'sabato'. ¿? – inigomedina

+6

Utilizzare il sito [https://crontab.guru/](https://crontab.guru/) per creare qualsiasi espressione cron. – nbi

risposta

363

Ecco una spiegazione del formato crontab.

# 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 

Quindi, secondo la tua 5 8 * * 0 correrebbe 08:05 ogni Domenica.

+104

Per essere più leggibili è possibile utilizzare uno dei 'sun, mon, mar, wed, thu, fri o sat' per il giorno. Questo ti evita anche di dover scegliere tra usare '0' o' 7' per domenica. – flu

30

Di seguito è riportato il formato del file crontab.

{minuto} {ora} {giorno della mesi} {mese} {giorno della settimana} {user} {path-to-shell-script}

Quindi, per eseguire ogni domenica alle la mezzanotte (Domenica è 0 solito, 7 in alcuni rari casi):

0 0 * * 0 root /path_to_command 
+0

Fare una votazione per menzionare come specificare il comando da eseguire ogni volta. (La colonna utente, tuttavia, deve essere omessa quando si modifica tramite il comando "crontab".) –

119

per avere un cron eseguito la Domenica è possibile utilizzare uno di questi:

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

Dove 5 8 stand per il tempo della giorno in cui questo accadrà: 8:05.

In generale, se si desidera eseguire qualcosa di Domenica, basta assicurarsi che il 5 ° colonna contiene uno di 0, 7 o Sun. Avevi 6, quindi era di sabato.

Il formato per cronjobs è:

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

È sempre possibile utilizzare crontab.guru come un editor per controllare le vostre espressioni cron.

+8

Solo per aiutare gli altri a evitare l'errore stupido che ho appena fatto, e assicurarsi di impostare il minuto su qualcosa di diverso da * o lo farà eseguire su ogni minuto di quell'ora! – user2924019

+2

crontab.guru è così utile! grazie per aver condiviso – Nadir

3

Quando si specificano i valori di cron, è necessario assicurarsi che i valori rientrino negli intervalli. Ad esempio, alcuni cron usano un intervallo 0-7 per il giorno della settimana in cui sia 0 che 7 rappresentano domenica. Noi non.

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

"noi" ... chi? quale programma e versione? – 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

Congratulazioni per la prima risposta a StackOverflow! Assicurati di controllare [Guida per la risposta] (https://stackoverflow.com/help/how-to-answer). Ad esempio, la risposta in genere dovrebbe contenere alcune nuove informazioni che mancano nelle risposte esistenti. – doz10us

+2

verrà eseguito 24 volte la domenica, 10 minuti dopo l'ora ogni ora. –