根crontab未运行


10

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

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

作为root用户应为以下内容:

crontab -e

然后加:

0 0 * * * /sbin/shutdown -r now

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

36 17 * * * /sbin/shutdown -r now

我已经用日期-R检查了时间。crontab的运行时间一去不复返,并且系统不会重新启动。我在这里想念什么?


只是为了确保您在编辑crontab之后就将其关闭,对吗?另外,您是如何“以root身份运行”的?输出是sudo crontab -l | grep -v '#'什么?
— terdon 2014年

为什么标记为debian?如果这是关于Debian而非Ubuntu的,请在Unix&Linux上询问。
— muru

我相信debian是Ubuntu的核心。
— Atomiklan 2014年

Answers:


11

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

  1. 使用以下命令调用crontab crontab -e -u root

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

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

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

CRON测试仪

CRON发电机

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

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

一种是在登录时自动以脚本的形式运行shutdown命令,但以特定的时间作为参数,而不是“ now”:

shutdown -r 00:00

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

另一种是使用 at命令:

at 0am

输入命令 shutdown -r now并使用ctrl + d保存,或为该命令编写脚本并执行以下操作:

at -f restart_script.sh 0am

希望这些可以帮助您获得想要的结果。


解决的办法是输出到dev null。我想知道为什么?
— Atomiklan 2014年

这是因为cron作业具有其自己的环境,该环境没有您期望的标准输入/输出系统,并且该过程失败,因为它试图将消息流式传输到缺少的输出管道中。与以任何用户身份在终端中运行某些命令相比,Cron作业实际上是完全不同的事情。很高兴得知您的产品毕竟能正常工作。
— Ahti Komu 2014年

0

系统Cron作业列在/ etc / crontab文件中。因此,直接编辑此文件将帮助您以root身份运行reboot命令。

因此,

$ 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重新启动系统

祝好运!


-3

36 17 * * *等..

36 17不能在cron中指定正确的时间。

通过date命令检查以查看系统是在美国时间还是在欧洲时间工作

如果使用欧洲时间,并且系统使用24小时制,则使用17 36;如果使用欧洲时间和12 H时间,则使用5 36。


不对!Cron不使用12小时制,并且格式始终为mm hh DD MM WD。
— Ahti Komu 2014年

请下次阅读全文。
— Atomiklan 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.