使用 crontab 安排的重启没有继续。这可能是什么原因?

使用 crontab 安排的重启没有继续。这可能是什么原因?

信息

我在 Debian 10 上为 root 用户设置了以下 crontab。

root@debian:~# crontab -l
# crontab comments curtailed for serverfault
#
# m h  dom mon dow   command

30 3 * * * shutdown -r now

如果我运行uptimewho -b得到上次手动重启的结果(昨天下午 6 点左右)。

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

我昨天晚上 7 点左右创建了 crontab,所以它肯定在目标时间之前到位。

问题

有没有原因导致这个方法不起作用?我可以用任何方法调试它吗?

答案1

检查日志以查看 cron 作业是否在指定时间运行。

在 Debian cron 登录后/var/log/syslog,查看 cron 作业是否被激活,是否有任何错误报告。

如果有的话,grep cron /var/log/syslog在 cron 应该重新启动时是否有任何记录?

还要检查 cron 服务是否正在运行,如果正在运行,是否systemctl status cron.service表示服务处于活动状态并已启用。需要运行 cron 服务才能运行 cron 作业。

这也可能是 cron 无法找到关机命令的问题,请尝试/usr/sbin/shutdown -r now在 cron 中使用。

对于 Debian 12 及更高版本

传统日志文件systemd-journald在 Debian 12 中已被取代,因此您无法再/var/log/syslog使用工具行进行搜索grep。这也会影响其他 GNU/Linux 发行版。但您可以改用journalctl并直接在那里过滤日志:

journalctl -u cron

相关内容