根 crontab 未运行

Ato*_*lan 10 root cron debian

出于某种原因,我的 root crontab 似乎没有运行。

尝试在每晚午夜重新启动设备。

作为 root 应该是以下内容:

crontab -e
Run Code Online (Sandbox Code Playgroud)

然后加:

0 0 * * * /sbin/shutdown -r now
Run Code Online (Sandbox Code Playgroud)

当我使用一些接近当前时间的值进行测试时,没有任何反应。我安装了 NTP 并确保时区正确。我还指定使用 24 小时制。例如,要立即测试此行(下午 5:35),我尝试输入以下内容:

36 17 * * * /sbin/shutdown -r now
Run Code Online (Sandbox Code Playgroud)

我已经用 date -R 检查了时间。crontab 运行的时间来了又去,系统不会重新启动。我在这里缺少什么?

Aht*_*omu 13

我为您提供三个解决方案建议。

  1. 调用 crontab crontab -e -u root

  2. 确保在 cronjob 文件的末尾有一个空行,这意味着每一行都以换行符结尾。

  3. 您可能需要将输出重定向到 devnull: shutdown -r now > /dev/null

这里有两个有用的 cronjobs 网页:

CRON 测试仪

CRON 发生器

您还可以使用webmin巧妙地处理 cronjobs 。

除此之外,您至少还有两种方法可以在午夜重新启动计算机。

一种是在登录时自动将关闭命令作为脚本运行,但使用特定时间作为参数而不是“现在”:

shutdown -r 00:00

但是,这将在每次登录时产生即将关闭的广播消息(可能根本不是一件坏事)。好吧,您也可以通过在 init.d 中添加脚本来使其在启动时运行,但仍然会产生消息。

另一种是使用at命令:

at 0am

输入命令shutdown -r now并使用 ctrl+d 保存它或为命令编写脚本并执行:

at -f restart_script.sh 0am

希望这些能帮助你得到你想要的结果。