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