17

有没有办法为特定时区设置 cronjob?

我的共享主机在美国(弗吉尼亚),我在英国。如果我将 cron 作业设置为每个星期五的 1600 小时执行,那么它将在弗吉尼亚的 1600 时执行。

我想知道我是否可以设置我的 cronjob 以使其了解选择哪个时区。我不太担心夏令时的差异。

我已经询问了我的共享主机提供商,他们说我应该能够在一些 cron ini 文件中设置时区,但我找不到任何文件。

4

5 回答 5

17

我认为你应该检查

/etc/default/cron

或者只是输入

Crontab cronfile

你应该找到

TZ=UTC

这应该改变(例如 America/New_York)。第二种方式是在 cron 示例中设置的

5 2 3 * * TZ="America/New_York" /do/command > /dev/null 2>&1
于 2012-11-08T13:44:09.430 回答
14

您可以使用CRON_TZ环境变量,摘自man 5 crontabCentOS 6 服务器:

CRON_TZ指定特定于 cron 表的时区。用户在指定时区的时间输入所选表时间。进入日志的时间取自本地时区,守护程序在哪里运行。

因此,如果您将其添加到cron条目的顶部:

CRON_TZ=Europe/London

你应该很好。

于 2014-03-17T19:23:12.627 回答
6

如果要为特定的 cronjob 设置不同的时区,请crontab -e通过 ssh 执行并添加

TZ=Europe/Moscow

在每个 cronjob 之前。

全文在这里

于 2015-06-19T14:44:03.573 回答
2

在 Ubuntu 18.08 上

host@machine$crontab -e

然后输入

TZ=Asia/Kolkata 

注意:-将 Asia/Kolkata 替换为您想要的时区

于 2020-05-25T12:43:37.973 回答
2

要扩展 AlexT 的答案:

CRON_TZ="Europe/London"

是答案。

ps 如果有人在这里寻找 GoDaddy 的时区修复程序,我建议将...

export TZ="Europe/London"

...在您的 .bashrc 中,以便您的控制台在您的时区运行。

于 2015-08-31T22:47:07.543 回答