Linux定時任務,任務調度(三)

介紹:任務調度是指在某個時間執行特定的程序或者命令

基本語法:crontab[選項]

快速入門:

1.每隔1分鐘,就將當前的日期信息,追加到 /tmp/mydate.log 文件中

1.1輸入:crontab -e 進去

1.2編輯:*/1 * * * * ls -l /etc >> /tmp/t.txt     (意思是每一分鐘 都會執行ls - l /etc   並把結果輸入都 t.txt中)

1.3保存退出 :wq           

1.4每一分鐘都會調用   ls -l /etc  把查詢到的結果 輸入到 t.txt

 

應用實例:

案例一:每隔一分鐘,就把當前系統時間,追加到 /tmp/mydate.log 文件中(編輯文件輸入 i ,纔可以插入;保存退出輸入  :wq)

1.先創建一個腳本  /home/mytask1.sh ,在mytask1.sh裏面輸入下面的內容  。輸入完保存退出 

date >> /tmp/mydate.log

2.在操作檯執行,給這個mytask1.sh 一個可以執行的權限,因爲文件剛創建的時候,沒有執行權限,只有讀寫權限

chmod 744  mytask1.sh

3. crontab -e             (解釋:在操作頁面輸入crontab -e  進行編輯)

4.在上一步打開的頁面中進行編輯 並 保存退出   (解釋:下面的指令是  每隔一分鐘,去執行 /home/mytask1.sh )

*/1 * * * * /home/mytask1.sh

5.查看/tmp/mydate.log 下這個文件內容

案例2:每天凌晨2點,將mysql 數據庫testdb,備份到文件mydb.bak中  (和案例操作步驟一樣,只是.sh文件中的內容不一樣)

1.先創建一個腳本  /home/mytask2.sh,在裏面編寫指令(每個人數據庫安裝地址用戶名都不同,自己參考)。保存退出

/user/local/mysql/bin/mysqldump -u root  -proot testdb > /tmp/mydb.bak

 2.給 /home/mytask2.sh 一個可以執行的權限

chmod  744 mytask2.sh

3.crontab -e

4.打開crontab 中,編輯

0 2 * * * /home/mytask2.sh

5.結束

其它操作:

crond 相關指令:
       1) conrtab –r:終止任務調度。    
       2) crontab –l:列出當前有那些任務調度
       3) service crond restart   [重啓任務調度]

參數細節說明:

  • 5個佔位符說明

項目  

含義  

範圍

第一個“*”

一小時當中的第幾分鐘

0-59

第二個“*”

一天當中的第幾小時

0-23

第三個“*”

一個月當中的第幾天

1-31

第四個“*”

一年當中的第幾月

1-12

第五個“*”

一週當中的星期幾

0-7(0和7都代表星期日)

 

 

 

 

 

 

 

  • 特殊符號說明

特殊符號

含義

*

代表任何時間。比如第一個“*”就代表一小時中每分鐘都執行一次的意思。

代表不連續的時間。比如“0 8,12,16 * * * 命令”,就代表在每天的8點0分,12點0分,16點0分都執行一次命令

-

代表連續的時間範圍。比如“0 5  *  *  1-6命令”,代表在週一到週六的凌晨5點0分執行命令

*/n

代表每隔多久執行一次。比如“*/10  *  *  *  *  命令”,代表每隔10分鐘就執行一遍命令

 

 

 

 

 

 

 

  • 特定時間執行任務案例

時間  

含義

45 22 * * * 命令

在22點45分執行命令

0 17 * * 1 命令

每週1 的17點0分執行命令

0 5 1,15 * * 命令

每月1號和15號的凌晨5點0分執行命令

40 4 * * 1-5 命令

每週一到週五的凌晨4點40分執行命令

*/10 4 * * * 命令

每天的凌晨4點,每隔10分鐘執行一次命令

0 0 1,15 * 1 命令

每月1號和15號,每週1的0點0分都會執行命令。注意:星期幾和幾號最好不要同時出現,因爲他們定義的都是天。非常容易讓管理員混亂。

 

 

 

 

 

 

 

 

 

 

注意:如果是簡單的任務,可以不用寫腳本,直接使用crontab加入任務即可

對於比較複雜的任務,需要寫 腳本(shell編程)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章