如何使用Linux Crontab在其他日子执行两项任务?

时间:2014-05-27 06:57:14

标签: linux crontab

我想这样做:

今天上午6:00执行任务A,然后每两天执行一次。

明天上午6:00执行任务B,之后每两天执行一次。

2 个答案:

答案 0 :(得分:0)

每两天执行cron作业的常规解决方案是在日期字段中使用*/2,但这不支持交替日期。

您可能需要列出日期列表:

0 6 */2 * * #Job to execute every even numbered day
0 6 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31 * * #Job to execute every odd numbered day

请注意,对于以奇数天数结束的月份,这将不完美。因为它将最终连续两次执行第二个作业,即31日和1日。

也许值得在系统上查看man crontab。有些crons支持更复杂的调度形式,例如依赖项(等到这个作业完成,然后等待另外X个小时并运行另一个作业),这可能对你有用。

答案 1 :(得分:0)

您可以使用date %s来确定它是否是"奇数"一天或者"甚至"在一个没有数年和数月的人为界限的运行日历中的一天。例如:

$ [ $(( `date +%s` / 86400 % 2 )) -eq 0 ] && echo A || echo B

然后驱动任务A或任务B.