Crontab Linux 未在特定时间运行

use*_*840 -1 php linux crontab

我有一个 crontab 作业,每天 07.00 运行。我已经设置了

0 7 * * * /usr/bin/curl http://localhost//blablaba
Run Code Online (Sandbox Code Playgroud)

这没用

但如果我用

    */10 * * * * /usr/bin/curl http://localhost//blablaba
Run Code Online (Sandbox Code Playgroud)

然后它每 10 分钟运行一次。但如果我给出特定时间,它就不起作用

为了您的信息,我检查了服务器时间,它显示了正确的时间

谢谢你的帮助 :(

Meh*_*des 5

您的 cron 表达式看起来正确。因为它遵循这种格式:

minute hour day-of-month month day-of-week [user] command
  0     7       *          *       *              /usr/bin/curl http://localhost//blablaba
Run Code Online (Sandbox Code Playgroud)

PS:如果您使用的是 /etc/crontab 文件而不是用户特定的 crontab,则需要添加用户字段。

因此,如果您的 cron 作业在/etc/crontab文件中定义,那么您需要向您的 cron 作业添加一个用户字段以使其运行。如果不是这种情况,请在客户端和服务器端检查您的 URL。

但是,我认为最好的办法是调试 cron 作业。因此,您需要通过执行以下操作来为 cron 作业启用日志记录:

如果您在Ubuntu

sudo vi /etc/rsyslog.d/50-default.conf
Run Code Online (Sandbox Code Playgroud)

如果您在CentOS

sudo vi /etc/rsyslog.conf
Run Code Online (Sandbox Code Playgroud)

如果有注释,请取消注释此行:

#cron.*                         /var/log/cron.log
Run Code Online (Sandbox Code Playgroud)

然后重启rsyslog和cron:

sudo service rsyslog restart
sudo service cron restart or sudo service crond restart
Run Code Online (Sandbox Code Playgroud)

现在您可以检查/var/log/cron.log文件中的日志消息,看看是否有任何问题。