我在我的Web服务器上有两个Cron作业 -
*/5 0-3 * * 0-4 [my job]
*/5 19-23 * * 0-4 [my job]
我们处于GMT+6时区,服务器位于GMT-8时区。我们希望工作运行时间为:
周日至周五 上午9点至下午5点在GMT+6时区(办公时间) 每5分钟一次
但似乎cron工作仅在周五运行,并且在周日中午停止在GMT+6时区。
我在我的Web服务器上有两个Cron作业 -
*/5 0-3 * * 0-4 [my job]
*/5 19-23 * * 0-4 [my job]
周日至周五 上午9点至下午5点在GMT+6时区(办公时间) 每5分钟一次
但似乎cron工作仅在周五运行,并且在周日中午停止在GMT+6时区。
我不知道有什么简单的方法可以更改时区。一些旧版本的cron
支持称为CRON_TZ
的环境变量,但当前版本的cron
似乎不支持。
因此,您需要将时间转换为系统时间。
我认为您已经正确计算了时间和日期,但是您需要将它们放在一起。例如,在UTC + 6上的星期四下午5点是在UTC-8上的星期四凌晨3点,但是您的规则没有在星期四运行任何内容。
根据我的计算,您需要:
Sunday 0900-1700 UTC+6 = Saturday 1900-2400 and Sunday 0000-0300 UTC-8
Monday 0900-1700 UTC+6 = Sunday 1900-2400 and Monday 0000-0300 UTC-8
...
Thursday 0900-1700 UTC+6 = Wednesday 1900-2400 and Thursday 0000-0300 UTC-8
Friday 0900-1700 UTC+6 = Thursday 1900-2400 and Friday 0000-0300 UTC-8
你需要在 crontab
中这样表达:
*/5 19-23 * * 0 [my job]
*/5 0-3,19-23 * * 1-4 [my job]
*/5 0-3 * * 5 [my job]
crontab
吗?root
访问权限,可以修改/etc/init.d/cron
条目,并在其中放置TZ=America/Los_Angeles
或类似内容?这篇文章帮助了我http://starikovs.com/2011/12/21/cron-timezone-problem/。
CRON_TZ
的变量。也许这可以帮助解决问题。 - Mikel