根据 Artur Meinild 的回答, crontab 的“月份”和“星期”字段是互斥的。然而,根据man 5 crontab
(对于亲信来说,如果重要的话):
当“分钟”、“小时”和“一年中的月份”字段与当前时间匹配,并且两个“日期”字段中的至少一个(“月份中的日期”或'星期几') 匹配当前时间
那么,以下行是错误,还是/bin/true
每周三加每月第二天运行的指令?cronie 的手册页记录的是标准行为,还是特定于应用程序的怪癖?
* * 2 * 3 /bin/true
Run Code Online (Sandbox Code Playgroud)
的POSIX规范crontab
,以标准\xe2\x80\x94 的语言措辞,旨在最大限度地减少歧义\xe2\x80\x94 可能有最清晰的解释(为了清晰起见,添加了强调,段落分割):
\n\n可以通过两个字段(月份中的日期和星期几)来指定日期。
\n
\n\n如果月、月中的某一天、星期几都是<星号>字符,则每天都将被匹配。
\n
\n\n如果月份或月份中的某一天被指定为元素或列表,但星期几是 <asterisk>,则月份和月份中的某一天字段应指定匹配的日期。
\n
\n\n如果月份和月份中的某一天都指定为 <asterisk>,但星期几是元素或列表,则只有一周中指定的天数匹配。
\n
\n\n最后,如果月份或月份中的某一天被指定为元素或列表,并且星期几也被指定为元素或列表,则与月份和月份中的某一天或星期几匹配的任何一天,应匹配。
\n
这证实了:
\n如果当前日期是星期三或该月的第二天,则执行示例中的任务。
\n这是有记录的标准行为。
\n