如何在 cron 作业中处理夏令时

如何在 cron 作业中处理夏令时

我在亚马逊 ec2 机器(Ubuntu 16.04)上有一个 cron 作业,应该在美国中部时间凌晨 2:00 运行。

cron 作业使用 UTC 时间进行调度。由于中部时间目前为 UTC-5(目前我们处于夏令时),因此它如下所示:

0 7 * * * /home/ubuntu/runetl.sh

因此它在 UTC 时间上午 7:00 运行,这是正确的。

但是当我们回到标准时间时,中央时间将更改为 UTC-6,因此作业将在中央时间凌晨 1:00 开始运行。这不是我想要的。我希望它们总是在凌晨 2:00 运行,无论是夏令时还是标准时间。

我怎样才能做到这一点?

答案1

运行sudo dpkg-reconfigure tzdata并设置您需要的本地时区(而不是 UTC)。还设置并运行ntp守护程序,它将精确同步时间,并自动逐渐平稳地在夏令时之间切换,这对于计费、电子邮件服务器等时间紧迫的任务非常重要。

相关内容