信息
我在 Debian 10 上为 root 用户提供了以下 crontab。
root@debian:~# crontab -l
# crontab comments curtailed for serverfault
#
# m h dom mon dow command
30 3 * * * shutdown -r now
Run Code Online (Sandbox Code Playgroud)
如果我运行uptime并who -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
Run Code Online (Sandbox Code Playgroud)
我昨天晚上 7 点左右创建了 crontab,所以它肯定是在目标时间之前就位的。
问题
这可能行不通有什么原因吗?我可以以任何方式调试这个吗?
检查日志以查看 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,因此您无法再/var/log/syslog使用工具行进行搜索grep。这也会影响其他 GNU/Linux 发行版。但您可以journalctl改为使用并直接在那里过滤日志:
journalctl -u cron
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5170 次 |
| 最近记录: |