Crontab Linux 不是 运行 在特定时间

Crontab Linux not running at specific time

我有一个 crontab 作业,每天 07:00 运行。 我已经设置好了

0 7 * * * /usr/bin/curl http://localhost//blablaba

没用

但如果我将其替换为

    */10 * * * * /usr/bin/curl http://localhost//blablaba

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

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

感谢您的帮助:(

试试这个

0 0/10 * 1/1 * ? * /usr/bin/curl http://localhost//blablaba

请检查这个http://www.cronmaker.com/

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

minute hour day-of-month month day-of-week [user] command
  0     7       *          *       *              /usr/bin/curl http://localhost//blablaba

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

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

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

如果你在 Ubuntu:

sudo vi /etc/rsyslog.d/50-default.conf

如果你在 CentOS:

sudo vi /etc/rsyslog.conf

如果注释了这一行,取消注释:

#cron.*                         /var/log/cron.log

然后重启rsyslog和cron:

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

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

你也可以试试这个 你必须在 phpMyAdmin 中检查你的服务器时间 第 1 步:单击 phpMyAdmin。 第 2 步:不选择数据库/ table 运行 this SQL 查询“SELECT NOW()”

在这里您将以 24 小时格式获取服务器的当前时间。现在您可以根据服务器时间设置cron作业了。

这是因为当您指定时间时,crontab 会根据UTC(Coordinated Universal Time) 时区来获取它。 因此,为了适用于您的系统,您应该根据您的时区指定它,或者您可以根据 UTC 在命令中转换您的具体时间。

例如: 我的时区是 JST,我想每天在 JST 15:00 运行 这个文件。所以首先我必须将这个时间转换为 UTC。它看起来像这样 -

0 6 * * * python code.py(注意:时间是从 JST 15:00 转换为 UTC 6:00)

所以这将根据我的时区 (JST) 在每天下午 3 点整执行我的文件