Crontab - 每季度运行一个cron作业

14

请问有没有人能给出一个模式,告诉我如何每季度运行一次cron job? 这些日期包括3月31日6月30日9月30日12月31日

2个回答

31

在这里最简单的解决方案是在您的crontab中有两个条目--一个用于30s,另一个用于31s,例如:

 0 0 30 6,9 * /path/to/your/script
 0 0 31 3,12 * /path/to/your/script

1
如果他的需求没有指定具体日期,那么“0 0 0 */4 *”是否可行? - Navarr
5
@Navarr 几乎正确——要实现季度运行需要使用0 0 1 */3 *(一个季度有三个月,不是四个)。我认为不是所有的系统都支持日期字段中的0值,因此建议使用1代表第一天。不过,列出你想要运行的具体月份可能更加明显易懂。 - Michael C. O'Connor
@michael-c-oconnor 对不起,是我的错。谢谢! - Navarr
@MichaelC.O'Connor 我认为 0 0 1 */3 * 会在新季度的第一天运行。我认为 OP 想要季度的最后一天。 - dopatraman
1
@dopatraman,是的,它会。该解决方案是针对早期评论中询问不需要特定日期的季度工作而提出的。如果我们需要该作业在原始问题所要求的日期上运行,则主要答案是我能找到的最佳解决方案。 - Michael C. O'Connor

6

这适用于每3个月的第一天,而不是月底最后一天。 - Scratte

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接