当我的服务器处于不同的时区时,以 UTC 运行 cron 作业

当我的服务器处于不同的时区时,以 UTC 运行 cron 作业

我的服务器在 GMT 时区运行,这意味着它在夏季会切换到英国夏令时。

我希望 cron 作业以 UTC 运行,因为它访问在该时区运行的外部服务。

例如,在冬季,我的工作应该在服务器时间为凌晨 1 点(GMT = UTC)时运行,而在夏季,我的工作应该在凌晨 2 点(GMT 比 UTC 早一小时)时运行。

我不想将服务器更改为使用 UTC 作为其时区,因为其他作业是根据当地时间运行的。注意:我在凌晨 1 点运行的作业本身不会访问时间信息,因此不需要知道它在哪个时区运行。它只需要在 UTC 时间运行。

答案1

最简单的方法是使用包装器脚本来检查本地时间,然后适当地执行实际作业。核心条目是包装器脚本,您需要在时间段内每小时运行一次以解决差异问题。

相关内容