【问题标题】:cronjob executed on wrong daycronjob 在错误的日期执行
【发布时间】:2021-12-04 19:29:09
【问题描述】:

我希望每个季度的第一个星期六执行一个脚本。 因此,我设置了一个 crontab 与以下内容对齐

24  9    1-7   1,4,7,10   6   /absolute/path/to/script

这个脚本现在在昨天,周六 9:24(ok),周六(ok),但在 10 月(ok)16 日(NOK)执行。

任何提示我错过或误解了什么? 非常感谢。

【问题讨论】:

标签: linux cron


【解决方案1】:

脚本在指定月份的前 7 天每天运行。

原因在this crontab guru page(和crontab(5)'s man page)中有很好的解释。相关文章是:

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

您可以通过检查描述以及您的脚本下一次运行的时间(“next at”)here 来检查是否确实发生了这种情况。

其他问题/答案中描述了实现您想要的方式,即在第一个星期六运行脚本。例如,参见Run a cron job on the first Monday of every month?How to schedule to run first Sunday of every month。简而言之,将6 替换为* 并将您的命令与对date 的调用结合起来。

【讨论】:

    猜你喜欢
    • 2016-12-31
    • 1970-01-01
    • 2017-12-06
    • 1970-01-01
    • 2015-09-06
    • 2018-02-10
    • 2019-02-25
    • 1970-01-01
    • 2023-01-31
    相关资源
    最近更新 更多