前段时间有个需求,Linux系统设置crontab定时任务,需求是每一个半小时执行一次,突然之间被这个问题难住了,应该怎么写?
后来仔细想了一下才搞明白
先把所有的执行脚本的执行时间列出来,就明白是怎么回事了。
把所有的执行时间分成两列,这就容易找到规律了。
1:30 | 3:00 |
4:30 | 6:00 |
7:30 | 9:00 |
10:30 | 12:00 |
13:30 | 15:00 |
16:30 | 18:00 |
19:30 | 21:00 |
22:30 | 0:00 |
整点的时间和整30分的时间跟下面的时间都是相差3个小时
所以需要分成两次来写
1 30 1-23/3 * * * xxxx.sh #这个对应左边的执行时间 2 0 0-23/3 * * * xxxx.sh #这个对应右边的执行时间
之前的写法都是一行就搞定了,因为一行就能够完成所需的要求,所以便先入为主的以为,一个任务只能写一行crontab。差点把自己给困住了。
如果一行不能满足需求,可以拆成两行,甚至三行来写,只要找到其中的规律即可。