如何在工作日的另一个时间运行cronjob?

时间:2016-11-09 09:55:01

标签: unix cron

我有一个脚本,每天定时运行在每天凌晨1点。

但是每隔一个星期三,我需要将时间更改为上午6点,目前我每周二都会手动分开。

e.g

  1. 2016年11月9日星期三上午6点。
  2. 2016年11月23日星期三上午6点。
  3. 2016年12月7日星期三上午6点。
  4. 主要的是每个星期三之间的工作应该按照常规时间进行。

1 个答案:

答案 0 :(得分:0)

使用this bash trick可以使用3个cron条目(可能是2个)完成:

#Every day except Wednesdays at 1am
0 1 * * 0,1,2,4,5,6 yourCommand

#Every Wednesdays at 1am, proceeds only on even weeks
0 1 * * 3 test $((10#$(date +\%W)\%2)) -eq 0 && yourCommand

#Every Wednesdays at 6am, proceeds only on odd weeks
0 6 * * 3 test $((10#$(date +\%W)\%2)) -eq 1 && yourCommand

-eq&#39更改为1或0,具体取决于您是想以奇数还是偶数周开始。它应该按照你的例子工作,因为2016年11月9日星期三上午6点是均匀的。