Esecuzione di un processo cron su Linux ogni sei ore


Risposte:


323

Hai dimenticato a *e hai troppi campi. È l'ora di cui ti devi preoccupare

0 */6 * * * /path/to/mycommand

Questo significa ogni sesta ora a partire da 0, cioè alle ore 0, 6, 12 e 18 che potresti scrivere come

0 0,6,12,18 * * * /path/to/mycommand

grazie per la risposta, questo è ogni 6 ore a partire da che ora? l'ora in cui viene creato il cron?
Gandalf StormCrow

grazie, quindi se volessi eseguirlo a partire dalle 15:00 ogni 6 ore sarebbe 15 15,23,05,11 * * * /path/to/mycommand?
Gandalf StormCrow

5
Sì, anche se il primo campo è il minuto, che hai impostato su 15, quindi ciò significa 15: 15,23: 15,05: 15 e 11:15. (che non è ogni sesta ora tra l'altro, avresti potuto significare 0 15,21,3,9 * * *)
nn

6

Dovresti includere un percorso per il tuo comando, poiché cron viene eseguito con un ambiente ampiamente ridotto. Non avrai tutte le variabili d'ambiente che hai nella tua sessione di shell interattiva.

È una buona idea specificare un percorso assoluto per il tuo script / binario o definire PATH nel crontab stesso. Per facilitare il debug di eventuali problemi, reindirizzerei anche stdout / err a un file di registro.


1
grazie per la risposta, ma se dichiaro variabili di ambiente all'interno del mio file sh come export variable=somethingposso ancora usarle all'interno dello stesso script? e uso molto il comando data all'interno della sceneggiatura
Gandalf StormCrow

@Gandalf - Sì. È possibile definire tutte le variabili env all'interno dello script. È una buona idea poiché significa che il tuo script è autonomo e isolato da altre cose che potresti voler eseguire in cron
Brian Agnew,

5
0 */6 * * * command

Questo sarà il modo perfetto per dire 6 ore al giorno.

Il tuo comando richiede sei minuti!


2
@ArsenArsen Sono abbastanza sicuro che non abbia aggiunto nulla alla risposta accettata esistente, scritta 4 anni prima.
Adinia,

2

Si prega di prestare attenzione a questa sintassi :

* */6 * * *

Ciò significa 60 volte (ogni minuto) ogni 6 ore,

non

una volta ogni 6 ore.




-2

Provare:

0 */6 * * * command

. * deve


1
L'ultima riga qui non ha molto senso. Considereresti di espanderlo?
halfer

1
sembra che la risposta sia incompleta
ajayramesh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.