Cron 表达式在不同的日子在不同的月份运行

Man*_*esh 1 unix linux cron

cron对于以下情况,我需要一个表达式:

我想在每个月的第一天的午夜运行一个时间表;但三月应该是个例外。对于三月,它应该在 3 月 15 日运行。

Bri*_*new 5

我不认为你可以用一个表情来做到这一点,但两个应该没问题

0 0 1  1,2,4-12 * expr
0 0 15 3        * expr
Run Code Online (Sandbox Code Playgroud)

即第一个表达式在除三月之外的所有月份中运行。仅 3 月的第二个。

或者,您可以指定您的脚本在 1 日15 日运行,并且您的脚本可以检查给定月份的哪一天有效。这会给你一个表达,但你在 cron 和你的脚本之间拆分日期分析,因此我认为这不是一个特别好的解决方案。对于更复杂的场景,值得牢记。