前段時間面試的時候,突然被問到一個問題,“在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。差點把自己給困住了。
如果一行不能滿足需求,可以拆成兩行,甚至三行來寫,只要找到其中的規律即可。