由于某种原因,我的 root crontab 似乎没有运行。
尝试每天晚上午夜重启设备。
以 root 身份执行下列操作:
crontab -e
然后加:
0 0 * * * /sbin/shutdown -r now
当我使用一些接近当前时间的值进行测试时,什么也没有发生。我安装了 NTP 并确保时区正确。我还指定使用 24 小时制。例如,要立即测试此行(下午 5:35),我尝试输入以下内容:
36 17 * * * /sbin/shutdown -r now
我已经使用 date -R 检查了时间。crontab 运行的时间到了又过去,系统没有重新启动。我这里遗漏了什么?
答案1
我给你三条解决建议。
使用以下命令调用 crontab:
crontab -e -u root
确保 cronjob 文件末尾有一个空行,这意味着每一行都以换行符结尾。
您可能需要将输出重定向至 devnull:
shutdown -r now > /dev/null
以下是两个有关 cronjobs 的有用网页:
你也可以使用以下方法巧妙地处理 cronjobs网页管理工具。
除此之外,您至少还有两种方法可以在午夜重新启动计算机。
一种是在登录时自动将关机命令作为脚本运行,但以具体时间作为参数而不是“现在”:
shutdown -r 00:00
但是,每次登录时都会广播即将关机的消息(这可能不是坏事)。您也可以通过在 init.d 中添加脚本来让它在启动时运行,但仍然会产生消息。
另一种是使用at
命令:
at 0am
输入命令shutdown -r now
并使用 ctrl+d 保存或为该命令执行脚本并执行:
at -f restart_script.sh 0am
答案2
系统 Cron 任务列在 /etc/crontab 文件中。因此,直接编辑此文件将帮助您以 root 身份运行重启命令。
所以,
$ sudo vi /etc/crontab
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
23 20 * * * root shutdown -r now
确保在编辑 crontab 后检查 Cron 日志文件,因为它会让您知道 cron 是否安装成功。
我已经测试过了,它对我有用。晚上 8:23 重启了我的系统
祝你好运!