
Informação
Eu tenho o seguinte crontab para o usuário root no Debian 10.
root@debian:~# crontab -l
# crontab comments curtailed for serverfault
#
# m h dom mon dow command
30 3 * * * shutdown -r now
Se eu executar uptime
e who -b
obtiver os resultados da última vez que fiz uma reinicialização manual (ontem por volta das 18h).
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
Criei o crontab por volta das 19h de ontem, então ele estava definitivamente instalado antes do horário previsto.
Pergunta
Existe uma razão pela qual isso pode não ter funcionado? Posso depurar isso de alguma forma?
Responder1
Verifique o log para ver se o cron job foi executado no horário especificado.
No Debian o cron está logado /var/log/syslog
, veja se há algum erro relatado se o cron job foi ativado.
Se você fizer isso, grep cron /var/log/syslog
há algo registrado no momento em que o cron deveria reiniciar?
Verifique também se o serviço cron está em execução; se você fizer systemctl status cron.service
isso, o serviço está ativo e habilitado. O serviço Cron precisa estar em execução para que os cron jobs sejam executados.
Também pode ser um problema com o cron não conseguir encontrar o comando shutdown, tente usar /usr/sbin/shutdown -r now
no cron.
Para Debian 12 e mais recente
Os arquivos de log tradicionaisforam substituídos por systemd-journald
no Debian 12, então você não pode mais pesquisar /var/log/syslog
usando a linha de ferramentas . grep
Isso também afeta outras distribuições GNU/Linux. Mas você pode usar journalctl
e também filtrar os logs diretamente lá:
journalctl -u cron