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

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

例如。 0 4 * * *命令

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

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

必须有一些时间configuration错误的地方。 我在哪里可以解决这个问题?

你记得在改变你的时区后重新启动cron吗? 如果不是这样,cron可能仍然有它最初启动时的时区概念。

虽然不是绝对必要的,我通常build议在更改时区后重新启动计算机 – 服务器的时区不应该改变(或者至less应该非常less见),并且这可以确保服务器上的每个程序都已重新启动,知道变化:-)

对我来说,我发现当我运行hwclock命令时,与我运行date命令不同的是一个小时。 为了解决这个问题,你可以调用hwclock --systohc来同步两次,并在预期的时间运行cronjobs。