cron 中的“每月第一个星期三上午 9 点”?

问题描述 投票:0回答:3

我正在尝试使用 cron 表达式安排任务在“每月第一个星期三上午 9 点”运行。

到目前为止我得到的最好的结果是

0 9 * * 3
,翻译过来就是“周三 09:00”。但不幸的是,那是每个星期三。

是否有可能在 cron 表达式中表达这种情况?

cron
3个回答
1
投票

您可以使用此语法

0 9 1W * *

1W
将指定该月的第一个星期三。

下面的答案似乎不起作用(至少根据一些在线工具)


您可以利用在第三个参数中指定多天的功能,如下所示:

0 9 1-7 * 3

尝试https://crontab.cronhub.io/中的表达式,这就是上面的描述方式:

每月第 1 日至第 7 天以及周三上午 09:00

您可以确定该月的前 7 天中只有一天是星期三,并且也是该月的第一个星期三。


0
投票

我使用this计算器来验证并生成cron表达式。

对于您的用例,它提供了这一点。

0 0 9 ? * 4#1 *

0
投票

对于我(CentOS)来说,使用...

0 9 1W * *

或者...

0 9 */1-7 * *

cron 抛出一般错误(与 Cron Guru 一致):

(CRON) bad day-of-month (/etc/crontab)

以下内容似乎让 CentOS 和 Cron Guru 感到高兴,并且应该是等价的,但我不明白为什么必须重复第一天(否则忽略第一天):

0 9 */1,1,2,3,4,5,6,7 * *
© www.soinside.com 2019 - 2024. All rights reserved.