sviluppo-web-qa.it

Qual è la sintassi corretta per eseguire cron ogni 4 ore?

Ho la seguente sintassi (che penso sia corretta?) Ma esegue il comando ogni minuto!

* */4 * * * /cmd.sh
63
erotsppa
0 0,4,8,12,16,20 * * * /cmd.sh

Probabilmente è così che lo farei. Questo eseguirà il lavoro ogni 4 ore, nelle ore 00:00, 04:00, 08:00 12:00, 16:00, 20:00.

Questo è solo un modo un po 'più dettagliato di scrivere */4, ma dovrebbe funzionare allo stesso modo.

64
phuzion

Il post originale, prima della modifica, mostrava la configurazione come:

  • */4 * * * /cmd.sh

Il poster non conosceva Markdown e inseriva un asterisco nella prima colonna, facendolo apparire come un proiettile. Ho modificato il loro post per riflettere ciò che intendevano pubblicare:

* */4 * * * /cmd.sh

In quella configurazione il poster otterrebbe il comportamento osservato: il lavoro verrà eseguito una volta al minuto durante le ore che sono equamente divisibili per 4.

Per evitare di correre una volta al minuto, è necessario un numero nella prima colonna, in questo modo:

15 * * * * whatever...

Che funzionerà al 15 ° minuto dopo ogni ora.

Mettendo tutto insieme: per eseguire una volta all'ora durante le ore che sono uniformemente divisibili per 4 utilizzare questa sintassi:

15 */4 * * * whatever...
76
Evan Anderson

Esegui un crontab -e e quindi aggiungi la seguente voce

0 */4 * * * path_to_the_script

Questo sarà lo script ogni 4 ore.

28

Il problema è il * nella prima colonna

'* */2 * * */path-to-script'

questo si traduce in esecuzione ogni minuto dell'ora, ma lo fa solo ogni 2 ore

9
charlie