在不同的 TZ 中运行 cron 任务

在不同的 TZ 中运行 cron 任务

我有几个 cron 事件需要运行,但需要在不同的时区运行。例如,我有一个事件每天在 UTC 时间 08:30 运行,另一个事件每天在 CET 时间 09:30 运行。我读过一些文章,说可以在 crontab 中通过在TZ=CET命令前设置来设置时区,但我猜这并没有告诉 Cron 下一个事件时间设置在什么时间。这可能吗?服务器运行的是 Debian,系统时区为 UTC。

TZ=CET
* 13    * * *   root    date >> ~/date.log

我也尝试过,CRON_TZ=CET但也没有用。

答案1

TZ=CET

在您的意志顶部crontab设置从 cron 运行的作业的时区,但不会影响cron对作业启动时间的解释。

如果要设置cron整体时区,则添加

export TZ=CET

/etc/sysconfig/crond(或您的发行版的等效配置) 应该会改变 的cron时间观念。您只需找到启动 的 init 脚本所来源的配置文件即可cron

https://askubuntu.com/questions/54364/how-do-you-set-the-timezone-for-crontab对此进行更多讨论。

如果您只需要TZ为特定作业进行设置,那么请在命令开始时进行设置。例如...

*/1 * * * *       TZ=Japan date >> date.log
*/1 * * * *       TZ=CET date >> date.log
*/1 * * * *       date >> date.log

nph9@goat$ cat date.log
Mon May 11 22:34:01 JST 2015
Mon May 11 14:34:01 BST 2015
Mon May 11 15:34:01 CEST 2015

相关内容