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

Mat*_*ick 11 cron timezone ubuntu-10.10

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

例如。0 4 * * * 命令

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

如果我运行命令date,它会以 CST 显示时间。

肯定是有什么地方时间配置错了。我在哪里可以解决这个问题?

vor*_*aq7 23

更改时区后记得重启cron吗?如果不是,cron 可能仍然有它最初启动时的旧时区概念。

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

  • 我注意到即使在重新启动 crond 后, /var/log/cron 中的条目也显示错误的时间。重新启动 rsyslog 解决了该问题。 (2认同)

小智 7

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