Prefiero pegar las tareas programadas en / etc / crontab para poder ver de un vistazo lo que está programado para ejecutarse, independientemente de qué usuario se ejecute la tarea.
El único problema es que el formato no se valida al guardar, a diferencia de crontab -e, por lo que un personaje perdido puede romper silenciosamente todo el cron.
¿Hay alguna forma de validar el formato / etc / crontab antes / después de guardar?
Respuestas:
La única forma confiable que encontré es verificar el registro.
cron
comprueba/etc/crontab
cada minuto y registra un mensaje que indica que lo ha vuelto a cargar o que ha encontrado un error.Entonces, después de editar, ejecuta esto:
O, para no esperar un minuto completo, sino solo hasta el siguiente minuto + 5 segundos:
Ejemplo de salida con un error:
Buena salida:
Eso está en Debian 8. En otros sistemas, cron puede iniciar sesión en un archivo diferente.
(Pensé que podría evitar buscar el archivo de registro correcto usando systemd's
journalctl -u cron
, pero eso no me mostró estas entradas de registro, y en realidad parece haber dejado de registrar eventos cron hace 2 días por alguna razón)fuente
Otra solución más reciente es el script de Python chkcrontab
fuente
Wicked cool shell scripts tiene un script de shell que valida los archivos crontab.
Puede obtener el archivo zip que contiene el script aquí
El script se llama verificado
fuente
Encontré esta solución genial aquí: https://crontab.guru
No solo valida el crontab, le dice explícitamente qué y cuándo se ejecutará el crontab, y resalta dónde están los errores.
fuente
En Ubuntu, parece que solo puedo ejecutar:
NOTA: esto tiene el efecto secundario de iniciar este cronjob (gracias @NZD)
Si el archivo no es válido, aparecerá un error, como:
fuente
* 4/0 * * /bin/myscript.sh
- el4/0
no es válido. pero no es atrapado por este método0
prohibido el valor escalonado ? unix.stackexchange.com/questions/32027/…