【问题标题】:Cronjob every x hours between 23-16 not workingCronjob 在 23-16 之间每 x 小时不工作
【发布时间】:2013-05-09 03:59:45
【问题描述】:

部分使用 stackoverflow 搜索,我想出了如何每 3 小时运行一次我的 cronjob,但不是在 23 小时到 16 小时之间。这意味着在今天的 16 点到今天的 23 点之间暂停。所以 cronjob 应该在 23h 开始每 3 小时运行一次,并在 16h 停止,然后在 23h 重新开始。

这是结果:

0 23-16/3 * * * /usr/local/bin/flexget -c /media/usb/Downloads/flexget/config.yml --cron

现在我的问题是:为什么这不起作用?它根本不运行:(

我也试过了:

* 23-16/3 * * * /usr/local/bin/flexget -c /media/usb/Downloads/flexget/config.yml --cron

(不确定用 0 或用 * 表示分钟,舍入与否有什么区别?)

这确实有效:

0 */3 * * * /usr/local/bin/flexget -c /media/usb/Downloads/flexget/config.yml --cron

但是它每天每 3 小时运行一次,在 16-23 之间没有停顿。

【问题讨论】:

    标签: cron


    【解决方案1】:

    您始终可以明确列出时间。

    0 2,5,8,11,14,23 * * * /usr/local/bin/flexget -c /media/usb/Downloads/flexget/config.yml --cron
    

    请注意,这与将 0 分钟替换为 * 相同,例如:

    * 2,5,8,11,14,23 * * * /usr/local/bin/flexget -c /media/usb/Downloads/flexget/config.yml --cron
    

    后者在指定时间的分钟开始,即 2:00、2:01、2:02、...、2:59、5:00、5:01、 ... 5:59,...

    【讨论】:

    • 好的,谢谢!想知道为什么 16-23 不起作用。但我会使用你的解决方案!
    • 因为 23 日和 16 日在不同的日子。假设您指定 23-16,并且还指定星期几=x 或月份日期=x。它怎么知道你的意思是 16:00 是在第 x 天还是 23:00?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-02
    相关资源
    最近更新 更多