【问题标题】:Cron job run at the wrong time in AIX 7.1AIX 7.1 中的 Cron 作业在错误的时间运行
【发布时间】:2019-05-05 09:13:12
【问题描述】:

我已将我的 cronjob 配置为在每个月的第一个星期一早上 8:40 运行,如下所示

40 08 1-7 * 1 /fs/test/testtime.sh

但它不仅在星期一运行,而且在今天也就是星期二运行。

有什么我错过的吗?

【问题讨论】:

  • 应该没问题...因为 "40 08 1-7 * 1 /fs/test/testtime.sh" 意味着它从 1 开始在每月的每一天的 08:40 运行通过 7 和星期一。确保没有其他 cronjob 正在同时运行。你可以使用“crontab -l”并粘贴结果吗?

标签: unix cron aix


【解决方案1】:

来自 crontab 的手册页(我的重点):

注意:命令执行的日期可以由两个字段指定 - 月份的日期和星期几。如果两个字段都受到限制(即不是*),则当其中一个 字段匹配当前时间。

例如,30 4 1,15 * 5 会导致命令在每个月的 1 日和 15 日凌晨 4:30 运行,加上每个星期五。 p>

因此,在您的情况下,该作业在每个月的前 7 天中的每一天运行,加上每周一。

您可以通过在命令中添加AND 条件而不是依赖时间规范中的OR 条件来做您想做的事情,例如:

40 08 1-7 * * test $(date +\%u) -eq 1 && /fs/test/testtime.sh

这将在所有这些日子(每个月的前 7 天)运行实际的 cron 作业,但 有效负载(脚本)只有在这一天是星期一。

【讨论】:

  • 我可以知道测试这个词是指什么吗?可以换成别的词吗?可能是项目名称?
  • @Ong, test 是一种测试特定条件的方法,所以,不,它不能被任意词替换。
猜你喜欢
  • 2015-03-15
  • 2012-04-28
  • 2013-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-02
  • 2018-04-01
相关资源
最近更新 更多