0

我有一个 cron 行,用于在每个月的第一个星期日运行命令,如下所示:

0 19 1-7 * 0 command.sh


Minutes=0
Hours=19
Day= 1st to 7th
* = any month
0 = first day of the week (Sunday)

然而,令我惊讶的是 command.sh 上周日(6 月 16 日)运行了。谁能解释为什么我的 cron 行是错误的?

作为替代方案,根据wiki 页面,可以使用“#”字符来:“允许您指定构造,例如给定月份的“第二个星期五””。是否有一个示例可用于如何使用它来适应“给定月份的第一个星期日”?

4

4 回答 4

1

您的脚本将在每个月的前 7 天 (1-2-3-4-5-6-7) 和每个星期日的 19 点运行。

这应该适用于您的情况:

0 19 1-7 * Sun [ "$(date '+\%a')" == "Sun" ] && /some/command
于 2013-06-19T21:40:27.310 回答
1

尝试这个

0 0 1 ? 1/1 SUN#1 *

它将在每个月的第一个星期日下午 1 点运行

于 2013-06-18T09:09:38.410 回答
1

另一个类似于下面提到的Haxis 的表达式,

0 19 1-7 * Sun  [ $(date +%d) -le 07 ] && /some/command
于 2017-10-06T04:47:23.257 回答
0

这个表达式:

0 0 19 ? * 1#1 *

它将在每个月的第一个星期日的 19:00 运行。

于 2021-10-18T18:14:18.253 回答