我的网络服务器上有两个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专区也会停止。
发布于 2011-02-20 08:43:02
我不知道有什么简单的方法可以改变时区。一些较早版本的cron支持名为CRON_TZ的环境变量,但当前版本的cron似乎不支持。
所以你得把时间转换成系统时间。
我认为你计算的时间和时间都是正确的,但是你必须把它们结合起来。例如,周四下午5点在UTC+6是周四凌晨3点在UTC-8,但你的规则周四没有运行任何东西。
根据我的计算,你想:
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或类似的内容放在其中?
当然,这个解决方案听起来也很糟糕,特别是当其他人使用这个系统的时候。如果你这样做,最好改变系统的时区。
不幸的是,对于cron alternative to cron?的替代方案没有太多的建议。
发布于 2011-12-21 19:45:59
这篇文章帮了我http://starikovs.com/2011/12/21/cron-timezone-problem/。
https://stackoverflow.com/questions/5056031
复制相似问题