不同时区的Crontab时间表


18

我想在EST中安排任务,但我希望实际任务在默认系统时区下运行。

最好的方法是什么?

Answers:


25

只需在crontab文件中设置变量TZ = Some / Where,即可多次设置TZ,以在不同的时区运行单独的作业。例如:

TZ=UTC
* 7 * * * root date | mail root
TZ=CEST
* 7 * * * root date | mail root
TZ=PCT
* 7 * * * root date | mail root

在7:00 UTC(或您运行了cron守护程序的时区),将运行三个作业,但是每个作业都有其自己的TZ变量。


+1不知道-非常有用。
合作社2012年

+1非常不错的小费!
Janne Pikkarainen 2012年

我希望它们都在相同的时区但在不同的时间运行!
DD。

哎,cron守护程序本身知道TZ变量已经存在:blogs.oracle.com/chrisg/entry/...
datacompboy

2
我在该问题中没有看到任何表明该环境为OpenSolaris的信息。Vixie cron特别指出这行不通的。
womble

14

在CENTOS版本的cron中,只需添加以下行:CRON_TZ = America / New_York

这将根据纽约时间运行计划,但任务将在默认时区运行。


感谢您提供有关默认时区的提示。如果希望cron作业也在东部时区运行,则需要在crontab的每一行中添加TZ变量,例如:export TZ=America/New_York; unix_command; next_cmd_in_sequence
Mike S

1
只是想提一下,您可以在单个crontab中具有多个CRON_TZ设置-非常有用。:)
Lester Cheung

0

您可以使用不同的TZ环境变量运行单独的cron实例,或者只是学习加减几个小时。


2
是的...在不同时区的不同时间发生的夏时制更改并非如此简单。我以为TZ环境变量将意味着流程在其他TZ中运行?
DD。

是的,并且具有不同TZ的进程是crond。
womble

如何使crond服务在其他TZ中运行?抱歉,我是Unix新手。
DD。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.