一、一次性任務
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