Ejecutar un trabajo cron a las 2:30 a. m. todos los días
¿Cómo configurar un trabajo cron para que se ejecute todas las noches a las 2:30? Sé cómo hacer que funcione a las 2, pero no a las 2:30.
crontab -e
agregar:
30 2 * * * /your/command
Para editar:
crontab -e
Agregue esta línea de comando:
30 2 * * * /your/command
- Formato crontab:
MIN HORA DOM MON DOW CMD
- Significados del formato y valor permitido:
MIN Minute field 0 to 59
HOUR Hour field 0 to 23
DOM Day of Month 1-31
MON Month field 1-12
DOW Day Of Week 0-6
CMD Command Any command to be executed.
- Formato crontab:
Reinicie cron con los datos más recientes:
service crond restart
Como se ve en las otras respuestas, la sintaxis a utilizar es:
30 2 * * * /your/command
# ^ ^
# | hour
# minute
Siguiendo el formato estándar de crontab:
+---------------- 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
También resulta útil utilizar crontab.guru para comprobar las expresiones de crontab.
Las expresiones se agregan al crontab
uso crontab -e
. Una vez que haya terminado, guarde y salga (si está usando vi
, :x
basta con escribir). Lo bueno de usar esta herramienta es que si escribe un comando no válido, es probable que reciba un mensaje en el formulario:
$ crontab -e
crontab: installing new crontab
"/tmp/crontab.tNt1NL/crontab":7: bad minute
errors in crontab file, can't install.
Do you want to retry the same edit? (y/n)
Si tiene más problemas con crontab que no se ejecuta, puede consultar Depuración de crontab o ¿Por qué crontab no ejecuta mi script PHP? .
Una forma sencilla de escribir cron es utilizar el generador de cron en línea . Generará la línea por usted. Una cosa a tener en cuenta es que si desea ejecutarlo todos los días (no sólo entre semana), debe resaltar todos los días.