Ejecutar un trabajo cron en Linux cada seis horas

Respuestas:

323

Olvidaste un *, y tienes demasiados campos. Es la hora que debes preocuparte

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

Esto significa cada seis horas a partir de 0, es decir, a las horas 0, 6, 12 y 18, que podría escribir como

0 0,6,12,18 * * * /path/to/mycommand
nos
fuente
gracias por la respuesta, esto es cada 6 horas a partir de qué hora? ¿Cuándo se crea el cron?
Gandalf StormCrow
gracias, así que si quisiera ejecutarlo a partir de las 15:00 cada 6 horas, ¿sería 15 15,23,05,11 * * * /path/to/mycommand?
Gandalf StormCrow
55
Sí, aunque el primer campo es el minuto, que ha establecido en 15, por lo que significará 15: 15,23: 15,05: 15 y 11:15. (que no es cada 6 horas por cierto, podría haber querido decir 0 15,21,3,9 * * *)
nos
6

Debe incluir una ruta a su comando, ya que cron se ejecuta con un entorno ampliamente reducido. No tendrá todas las variables de entorno que tiene en su sesión de shell interactivo.

Es una buena idea especificar una ruta absoluta a su script / binario, o definir PATH en el crontab mismo. Para ayudar a depurar cualquier problema, también redirigiría stdout / err a un archivo de registro.

Brian Agnew
fuente
1
gracias por la respuesta, pero si declaro variables de entorno dentro de mi archivo sh como export variable=somethingsi todavía pudiera usarlas dentro de ese mismo script? y uso mucho el comando date dentro del script
Gandalf StormCrow
@Gandalf: sí. Puede definir todas sus variables env dentro del script. Esa es una buena idea, ya que significa que su secuencia de comandos es independiente y está aislada de otras cosas que es posible que desee ejecutar dentro de cron
Brian Agnew
5
0 */6 * * * command

Esta será la manera perfecta de decir 6 horas al día.

Su comando se pone por seis minutos!

rkoots
fuente
2
@ArsenArsen Estoy bastante seguro de que fue porque realmente no agrega nada a la respuesta aceptada existente, escribió 4 años antes.
Adinia
2

Por favor, preste atención a esta sintaxis :

* */6 * * *

Esto significa 60 veces (cada minuto) cada 6 horas,

no

Una vez cada 6 horas.

Andrea Bisello
fuente
0
0 */6 * * *

crontab cada 6 horas es un cron cron de uso común.

Nilesh Patil
fuente
44
¿Qué agrega esta respuesta que las otras respuestas no? @rkoots ya ha mencionado este comando exacto.
Goodbye StackExchange
¿"Usado comúnmente" ? ¿Por qué? ¿Puedes elaborar?
Peter Mortensen
0

Necesitas usar *

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

También puede consultar https://crontab.guru/ que lo ayudará a programar mejor ...

rkoots
fuente
-2

Tratar:

0 */6 * * * command

. * tiene que

rkoots
fuente
1
La última línea aquí no tiene mucho sentido. ¿Considerarías expandirlo?
halfer
1
parece que la respuesta está incompleta
ajayramesh