Linux_定時任務詳解_一次性和週期性任務習題面試題還不趕緊進來瞅瞅(4)

一、一次性任務

Unix/Linux 中,提供了 at 命令,用於指定時間點,就可以在指定的時間點添加多條執行
命令,當指定的時刻到達時,就會觸發執行的所有命令。

```
at -l :查看任務
atrm n刪除編號n的定時任務
at 時間點 指定的時間點上,添加任務
ctrl+D保存

at:時間點(HH:MM)
時間早於系統時間,默認第二天這個時間執行
時間晚於系統時間,默認今天這個時間執行
```

如果需要深入瞭解 at,可以man at 查看命令操作手冊,太多了,這裏就截圖一點
在這裏插入圖片描述
在這裏插入圖片描述

1、演示案例

在這裏插入圖片描述
打開兩個終端

在這裏插入圖片描述
追加內容,並且另外個終端檢測該txt文件
在這裏插入圖片描述
查看結果: 任務執行一次後 再繼續at -l 會沒有任務了
在這裏插入圖片描述

二、週期性任務

需求:每天凌晨 1 點重啓服務器的 tomcat 服務,保證我們的網站正常運行。
分析:這就是一個週期性的定時任務

解決方案:Unix/Linux 中提供了定時任務操作 crontab 實現,通常情況下該組件是系統
的一個內建組件,如果你的系統缺少了這個組件,可以 yum install crontab 安裝。

通過crontab的命令,添加,編輯,刪除任務

crontab  -l:列出所有的週期性任務

crontab  -e:編輯當前用戶的週期性任務

crontab -r:刪除所有週期性定時任務

crontab -e 編輯任務時創建了一個任務文件,直接編輯添加任務,任務格式固定格式
在這裏插入圖片描述
以第一個*符號爲例,說明上述的語法

	* :表示每一天的每個小時的每分鐘執行一次後面的命令
    10:表示每一天的每個小時的第 10 分鐘,執行一次後面的命令
   */5:表示每一天的每個小時中,每間隔 5 分鐘,執行一次後面的命令
    5,10,20,30:表示每一天的每個小時中,第 5、10、20、30 分鐘時刻執行後面命令
	10-20:表示每一天的每個小時中,第 10 分鐘開始直到 20 分鐘結束,每分鐘執行命令

1、演示案例

需求:我們有一個爬蟲程序的檢查腳本,需要每分鐘執行一次並且記錄執行結果。
分析:需要做的是每分鐘執行一次,並且記錄執行結果

在這裏插入圖片描述
填寫內容: 記得保存
在這裏插入圖片描述
這一步,兩個終端,一個監測我們剛創的文件,另外一個看下沒有週期性任務
在這裏插入圖片描述
crontab -e 進入到週期性任務創建vim編輯
在這裏插入圖片描述
下一步
在這裏插入圖片描述
查看另外個終端,發現已經執行了3次,並且是每一分鐘
在這裏插入圖片描述

三、週期性任務練習題

1、每天6:00執行–6點整

0 6 * * * root /home/mvp/osyunwei.sh
分 時 日 月 周

2、每週六凌晨4:00執行

0 4 * * 6 root /home/mvp/osyunwei.sh
分 時 日 月 周(0~6)

3、每週六凌晨4:05執行

5 4 * * 6 root /home/mvp/osyunwei.sh 

4、每週六凌晨4:15執行

15 4 * * 6 root /home/mvp/osyunwei.sh

5、每週六凌晨4:25執行

25 4 * * 6 root /home/mvp/osyunwei.sh

6、每週六凌晨4:35執行

35 4 * * 6 root /home/mvp/osyunwei.sh

7、每週六凌晨5:00執行

0 5 * * 6 root /home/mvp/osyunwei.sh

8、每天8:40執行

40 8 * * * root /home/mvp/osyunwei.sh

9、每天8:30執行

30 8 * * * root /home/mvp/osyunwei.sh

10、每週一到週五的11:41開始,每隔10分鐘執行一次 #值得借鑑

41,51 11 * * 1-5   root /home/mvp/osyunwei.sh   # 11:41執行一次,11:51執行一次
或者
*/10 12-23 * * 1-5   root /home/mvp/osyunwei.sh  # 星期1~5,12點到23點,每隔10分鐘執行一次

11、在每天的10:31開始,每隔2小時重複一次

31 10-23/2 * * * root   /home/mvp/osyunwei.sh

12、每天15:00執行

0 15 * * *  root /home/mvp/osyunwei.sh

13、每天的10:30開始,每隔2小時重複一次

30 10-23/2 * * * root  /home/mvp/osyunwei.sh

14、每天15:30執行

30 15 * * *  root /home/mvp/osyunwei.sh

15、每天17:50執行

50 17 * * *  root /home/mvp/osyunwei.sh

16、每天8:00執行

0 8 * * *  root  /home/mvp/osyunwei.sh

17、每天18:00執行

0 18 * * *  root  /home/mvp/osyunwei.sh

18、每天8:30執行

30 8 * * *  root  /home/mvp/osyunwei.sh

19、每天20:30

30 20 * * *  root /home/mvp/osyunwei.sh

20、每週一到週五2:00

0 2 * * 1-5 root /home/mvp/osyunwei.sh

21、每週一到週五9:30

30 9 * * 1-5 root /home/mvp/osyunwei.sh

22、每週一到週五8:00,每週一到週五9:00

0 8,9 * * 1-5  root /home/mvp/osyunwei.sh

23、每天23:59

59 23 * * *  root  /home/mvp/osyunwei.sh

24、每週六23:59

59 23 * * 6  root    /home/mvp/osyunwei.sh

25、每天0:30

30 0 * * *  root  /home/mvp/osyunwei.sh

26、每週一到週五9:25到11:35之間、13:00到15:00之間,每隔10分鐘運行一次
分區段寫值得借鑑

25,35,45,55  9 * * 1-5  root   /home/mvp/osyunwei.sh
5-59/10  10 * * 1-5  root   /home/mvp/osyunwei.sh
5,15,25,35  11 * * 1-5  root   /home/mvp/osyunwei.sh
*/10  13-15 * * 1-5  root   /home/mvp/osyunwei.sh

27、每週一到週五8:30、8:50、9:30、10:00、10:30、11:00、11:30、13:30、14:00、14:30、5:00分別執行一次

30,50 8 * * 1-5  root  /home/mvp/osyunwei.sh
30 9 * * 1-5  root  /home/mvp/osyunwei.sh
*/30 10-11 * * 1-5  root  /home/mvp/osyunwei.sh
30 13 * * 1-5  root  /home/mvp/osyunwei.sh
0,30 14-15 * * 1-5  root  /home/mvp/osyunwei.sh

28、每天23:50執行

50 23 * * *  root  /home/mvp/osyunwei.sh

29、每天10:00、16:00執行

0 10,16 * * *  root /home/mvp/osyunwei.sh

30、每天5:30執行

30 5 * * *  root  /home/mvp/osyunwei.sh

31、每週一到週五9:30執行

30 9 * * 1-5  root  /home/mvp/osyunwei.sh

32、每週一到週五13:00執行

0 13 * * 1-5  root  /home/mvp/osyunwei.sh

33、每天7:51執行

51 7 * * *  root /home/mvp/osyunwei.sh

34、每天7:53、12:40分別執行一次

53 7 * * *  root /home/mvp/osyunwei.sh
 
40 12 * * *  root /home/mvp/osyunwei.sh

35、每天7:55執行

55 7 * * *  root  /home/mvp/osyunwei.sh

36、每天8:10、16:00、20:00分別執行一次

10 8 * * *  root  /home/mvp/osyunwei.sh
 
0 16 * * *  root  /home/mvp/osyunwei.sh
 
0 20 * * *  root  /home/mvp/osyunwei.sh

37、每天7:57、8:00分別執行一次

57 7 * * *  root  /home/mvp/osyunwei.sh
 
0 8 * * *  root  /home/mvp/osyunwei.sh
 
         在26分、29分、33分執行一次:0 26,29,33 * * * ?

         每天的0點、13點、18點、21點都執行一次:0 0 0,13,18,21 * * ?

實例1:每1分鐘執行一次command

命令:	 * * * * * command

實例2:每小時的第3和第15分鐘執行

命令:3,15 * * * * command

實例3:在上午8點到11點的第3和第15分鐘執行

命令:3,15 8-11 * * * command

實例4:每隔兩天的上午8點到11點的第3和第15分鐘執行

命令:3,15 8-11 */2 * * command

實例5:每個星期一的上午8點到11點的第3和第15分鐘執行

命令:3,15 8-11 * * 1 command

實例6:每晚的21:30重啓smb

命令:30 21 * * * /etc/init.d/smb restart

實例7:每月1、10、22日的4 : 45重啓smb

命令:45 4 1,10,22 * * /etc/init.d/smb restart

實例8:每週六、週日的1 : 10重啓smb

命令:10 1 * * 6,0 /etc/init.d/smb restart

實例9:每天18 : 00至23 : 00之間每隔30分鐘重啓smb

命令:0,30 18-23 * * * /etc/init.d/smb restart

實例10:每星期六的晚上11 : 00 pm重啓smb

命令:0 23 * * 6 /etc/init.d/smb restart

實例11:每一小時重啓smb

命令:* */1 * * * /etc/init.d/smb restart

實例12:晚上11點到早上7點之間,每隔一小時重啓smb

命令:* 23-7/1 * * * /etc/init.d/smb restart

實例13:每月的4號與每週一到週三的11點重啓smb

命令:0 11 4 * mon-wed /etc/init.d/smb restart

實例14:一月一號的4點重啓smb

命令:0 4 1 jan * /etc/init.d/smb restart

實例15:每小時執行/etc/cron.hourly目錄內的腳本

命令:01   *   *   *   *     root run-parts /etc/cron.hourly
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章