【问题标题】:Does crontab day of week and day of month must both be matched at the same time?crontab 星期几和月份日期必须同时匹配吗?
【发布时间】:2019-06-02 15:22:22
【问题描述】:

Wikipedia 说:

虽然通常在时间/日期指定时执行作业 字段都匹配当前时间和日期,有一个例外:如果 “日期”(字段 3)和“星期几”(字段 5)都是 受限(不是“*”),则其中一个或两个必须与当前日期匹配。[3]

这是否意味着如果我设置了

星期几 = 2 和月份日期 = 09

星期几 = 3 和月份日期 = 10

那么任务不会在 2019/Jan/09(星期三)运行?

我认为 wiki 是不正确的。

【问题讨论】:

    标签: cron


    【解决方案1】:

    表示如果满足两个条件之一(可以同时满足,不需要)

    注意:可以在以下两个字段中指定命令执行的日期——“日期”和“星期几”。如果两个字段都受限制(即不包含* 字符),则命令将在以下情况下运行 任一 字段与当前时间匹配。例如, 30 4 1,15 * 5 将导致在每个月的 1 日和 15 日凌晨 4:30 运行命令,加上每个星期五。

    来源:man 5 crontab

    在 OP 的示例中,如果日期是 Wednesday Jan 09 2019,则比 crontab:

    x x 9 x 2
    

    将执行,因为它是该月的第九天,并且

    x x 10 x 3
    

    将执行,因为它是星期三

    【讨论】:

      【解决方案2】:

      月日和周日之间的函数是 OR。所以记录

      0 0 9 1 2
      

      0 0 10 1 3
      

      两者都会执行脚本。关系是

      day of week OR day of month
      

      参考检查man pagecron

      注意:命令的执行日期可以由两个字段指定 - 月中的一天和一周中的一天。如果两个字段都受限制(即不是 *),则当任一字段与 当前时间。

      【讨论】:

        猜你喜欢
        • 2021-12-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-15
        • 2020-01-21
        • 2016-03-25
        • 1970-01-01
        • 2018-07-14
        相关资源
        最近更新 更多