crontab 没有在特定时间运行,而是每分钟运行一次

crontab 没有在特定时间运行,而是每分钟运行一次

我想每天晚上 8:10 运行一个 cron 作业。

10 20 * * * curl -s -o /dev/null http://www.example.com/blah.php

然而,它不起作用。

如果我尝试每分钟运行一次:

* * * * * curl -s -o /dev/null http://www.example.com/blah.php

一切运行正常。发生了什么?

命令“date”在我的服务器上产生了正确的时间。

答案1

在 /etc/default/rcS 中将 UTC 从“是”更改为“否”。现在可行。

答案2

这个答案帮助我解决了同样的情况。重新启动 cron 服务帮助我的服务器的 cron 服务识别我对系统日期所做的更改。

https://stackoverflow.com/questions/34626135/crontab-linux-not-running-at-specific-time

sudo service rsyslog restart
sudo service cron restart or sudo service crond restart

答案3

以上方法应该可以正常工作。以下是您可以尝试的方法:

  • 尝试不同的时间 - 例如将其设置为 5 分钟后运行,看看是否有效
  • 尝试其他用户
    • 或者不同的 crontab(/etc/crontab或其他用户的 crontab)
  • 尝试更简单的命令(例如echo works > /tmp/cron-works
    • 您也可以将上述内容添加到您的 curl 中(例如echo works > /tmp/curl-works; curl ...)或类似这样的内容
    • 同时添加另一个 cron 条目也是不错的选择,它可以发出 echo 指令,并保持 curl 不变
  • 检查日志 -/var/log/syslog应该显示它正在执行命令以及可能出现的故障
  • 确认你的 curl 确实运行了 - 你如何知道它是否运行了?我假设你正在查看日志www.example.com- 如果是的话,请仔细检查日志
  • 尝试特殊值,例如@houry(请参阅man 5 crontab完整列表)

另外,你是如何进行身份验证的?如果是网络身份验证,你可能需要确认它是否正常工作任何 crontab 执行。

答案4

只需重新启动 cron 服务。

$ sudo service cron restart

相关内容