Cron 作业没有按照时间表执行

Cron 作业没有按照时间表执行

考虑以下 cron 作业:

* 22-23 * * * /usr/bin/curl -u username:paswword http://api.example.com/api/test2.php

现在,根据这个,cron 作业必须从 22h00(UTC)开始每分钟运行一次,但事实并非如此。它在此时间之前启动,并且不会持续整整一个小时。因此,我将执行时间写入数据库表,只是为了查看发生了什么。以下是我得到的结果:

数据库条目截图

表示systemDateTimecron 作业的执行时间。如您所见,它仅执行了 6 次,并且在计划时间前约 6 分钟启动。

此系统配置相关吗? cron 作业位于 Apache 共享服务器上。我是否遗漏了什么?

更新:我使用以下 PHP 代码来获取系统日期时间和我的时区日期时间:

$systemDateTime = date('Y-m-d H:i:s');
$dateNow = new DateTime("now", new DateTimeZone('GMT+2'));
$zoneDateTime = $dateNow->format('Y-m-d H:i:s');  

答案1

在命令中添加时区似乎可以解决问题。这是新的 cron 作业:

* 22 * * * TZ=GMT+2 /usr/bin/curl -u username:password http://api.example.com/api/test2.php

另外,我不确定为什么它只执行了第一个 cron 作业 6 次,但现在它运行良好。

相关内容