为什么cronjobs在错误的时间运行?


10

我的cronjobs设置每天在我的Ubuntu服务器上运行。

例如。0 4 * * *命令

他们正在运行,除了提前8个小时运行。设置服务器时,最初将其设置为UTC时间。我跑sudo dpkg-reconfigure tzdata了将服务器设置为CST,这比UTC晚6个小时。有趣的是,我的PST时间比UTC晚8个小时,但我不知道服务器如何知道这一点。

如果我运行命令date,它将显示CST中的时间。

时间一定在某些地方配置错误。我在哪里可以解决这个问题?

Answers:


21

您还记得更改时区后重新启动cron吗?如果不是这样,则cron可能仍然具有其最初启动时所在的时区的旧概念。

虽然不是绝对必要,我通常建议更改时区后,重新启动机器-服务器的时区不应该永远改变(或至少它应该是非常的服务器上的每个程序已重新启动罕见的),而这个保证,知道变化:-)


不,我没有重启。我已经做到了,将等待看看是否是问题所在(我认为可能是这样)。
马特·麦考密克

重新启动cron服务后,它现在与我使用tzdata设置的时区相同的时间运行。谢谢。
Donny Kurnia 2014年

1
我注意到即使重新启动crond后,/ var / log / cron中的条目也显示了错误的时间。重新启动rsyslog可以解决该问题。
zymhan 2015年

@WildVelociraptor是的,系统日志也将使用旧的时区数据,直到重新启动为止(因此,即使它们在正确的时间运行,它也会为错误的时间戳记)。在时区数据更改之前长时间运行并已启动的任何其他操作都将表现出类似的行为,这就是通常指示重新启动的原因。
voretaq7

7

对我来说,我发现运行hwclock命令的时间与运行 命令的时间相差一个小时date。要解决此问题,您可以调用hwclock --systohc它将同步两次并在预期的时间运行cronjobs。


在我的情况下,两个datehwclock报告相同的时间,但仍然cron的没有做什么我期望它。
unfa

您生命安全,非常感谢hwclock --systohc为我解决了错误的日期=)
Marcus J.Kennedy
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.