首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cron作业调度

Cron作业调度
EN

Stack Overflow用户
提问于 2011-02-20 08:37:01
回答 2查看 4.1K关注 0票数 3

我的网络服务器上有两个Cron工作-

代码语言:javascript
复制
*/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专区也会停止。

EN

回答 2

Stack Overflow用户

发布于 2011-02-20 08:43:02

我不知道有什么简单的方法可以改变时区。一些较早版本的cron支持名为CRON_TZ的环境变量,但当前版本的cron似乎不支持。

所以你得把时间转换成系统时间。

我认为你计算的时间和时间都是正确的,但是你必须把它们结合起来。例如,周四下午5点在UTC+6是周四凌晨3点在UTC-8,但你的规则周四没有运行任何东西。

根据我的计算,你想:

代码语言:javascript
复制
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中将其表示为:

代码语言:javascript
复制
*/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?的替代方案没有太多的建议。

票数 2
EN

Stack Overflow用户

发布于 2011-12-21 19:45:59

这篇文章帮了我http://starikovs.com/2011/12/21/cron-timezone-problem/

  1. 在debian的情况下,首先启动dpkg-重新配置tzdata.
  2. Link /etc/localtime到相应的zoneinfo文件。
  3. 重新启动cron守护进程.
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5056031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档