
Información
Tengo el siguiente crontab para el usuario root en Debian 10.
root@debian:~# crontab -l
# crontab comments curtailed for serverfault
#
# m h dom mon dow command
30 3 * * * shutdown -r now
Si ejecuto uptime
y who -b
obtengo los resultados de la última vez que reinicié manualmente (ayer alrededor de las 6 p.m.).
root@debian:~# uptime
11:03:19 up 16:29, 1 user, load average: 0.00, 0.01, 0.00
root@debian:~# who -b
system boot 2020-12-26 18:34
Creé el crontab ayer alrededor de las 7 p. m., por lo que definitivamente estaba implementado antes de la hora prevista.
Pregunta
¿Hay alguna razón por la que esto no haya funcionado? ¿Puedo depurar esto de alguna manera?
Respuesta1
Verifique el registro para ver si el trabajo cron se ejecutó a la hora especificada.
En Debian, cron está conectado /var/log/syslog
, consulte, se informa algún error si se activó el trabajo cron.
Si lo hace, grep cron /var/log/syslog
¿hay algo registrado en el momento en que se suponía que cron debía reiniciarse?
También verifique si el servicio cron se está ejecutando; si lo hace, systemctl status cron.service
dice que el servicio está activo y habilitado. El servicio cron debe estar ejecutándose para que se ejecuten las tareas cron.
También podría ser un problema porque cron no puede encontrar el comando de apagado, intente usarlo /usr/sbin/shutdown -r now
en cron.
Para Debian 12 y posteriores
Los archivos de registro tradicionaleshan sido reemplazados por systemd-journald
en Debian 12, por lo que ya no podrás buscar /var/log/syslog
usando la línea de herramientas . grep
Esto también afecta a otras Distribuciones GNU/Linux. Pero puedes usar journalctl
en su lugar y también filtrar los registros directamente allí:
journalctl -u cron