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

use*_*007 6 cron time-zone crontab

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

cron 作业是使用 UTC 时间安排的。由于中部时间目前是 UTC-5(我们目前处于夏令时),因此它看起来像这样:

0 7 * * * /home/ubuntu/runetl.sh
Run Code Online (Sandbox Code Playgroud)

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

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

我怎样才能做到这一点?

Ale*_*lex 3

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