一、介紹
crontab命令的功能是在一定的時間間隔調度一些命令的執行。當安裝完成作業系統之後,預設便會啟動此任務調度命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。
二、參數
-u :指定一個使用者
-l :列出某個使用者的任務計劃
-r :刪除某個使用者的任務
-e :編輯某個使用者的任務
三、cron檔案
1、編輯命令
1)、在命令列輸入: crontab -e 然後添加相應的任務,wq存檔退出
2)、直接編輯/etc/crontab 檔案,即vi /etc/crontab,添加相應的任務
2、檔案格式
Minute Hour Day Month DayofWeek CommandPath
3、參數說明
Minute:每個小時的第幾分鐘執行該任務;取值範圍0-59
Hour:每天的第幾個小時執行該任務;取值範圍0-23
Day:每月的第幾天執行該任務;取值範圍1-31
Month:每年的第幾個月執行該任務;取值範圍1-12
DayOfWeek:每周的第幾天執行該任務;取值範圍0-6,0表示周末
CommandPath:指定要執行的程式路徑
4、時間格式
* :表示任意的時刻;如小時位 * 則表示每個小時
n :表示特定的時刻;如小時位 5 就表示5時
n,m :表示特定的幾個時刻;如小時位 1,10 就表示1時和10時
n-m :表示一個時間段;如小時位 1-5 就表示1到5點
*/n : 表示每隔多少個時間單位執行一次;如小時位 */1 就表示每隔1個小時執行一次命令,也可以寫成 1-23/1
5、調度樣本
* 1 * * * /opt/script/backup.sh :從1:0到1:59 每隔1分鐘 執行
15 05 * * * /opt/script/backup.sh :05:15 執行
*/10 * * * * /opt/script/backup.sh :每隔10分 執行
0 17 * * 1 /opt/script/backup.sh :每周一的 17:00 執行
2 8-20/3 * * * /opt/script/backup.sh :8:02,11:02,14:02,17:02,20:02 執行
6、後台執行
1)、說明
當在前台運行某個作業時,終端被該作業佔據;而在後台運行作業時,它不會佔據終端。可以使用&命令把作業放到後台執行
需要與使用者互動的作業當注意不要放在後台執行
在後台啟動並執行作業一樣會將結果輸出到螢幕上,如果放在後台啟動並執行作業會產生大量的輸出,最好將它的輸出重新導向到某個檔案中
2)、標識
0 :表示鍵盤輸入
1 :表示標準輸出
2 :表示錯誤輸出
& :後台執行
> : 覆蓋檔案內容
>>:追加檔案內容
&1 :表示的是檔案描述1,表示標準輸出;如果這裡少了&就成了數字1,就表示重新導向到檔案1
2>&1 :將錯誤輸出重新導向到標準輸出
1>/dev/null :將標準輸出重新導向到檔案/dev/null;1>/dev/null等同於>/dev/null
3)、樣本
0 2 * * * /u01/test.sh 1>/dev/null 2>&1 &
這句話的意思就是在後台執行這條命令,並將錯誤輸出2重新導向到標準輸出1,然後將標準輸出1全部放到/dev/null 檔案,也就是清空。
4)、位置
2>&1 需要寫在command 1>file 後面。
在command 1>file 2>&1,首先是 command 1>file 將標準輸出重新導向到file中,2>&1 是標準錯誤拷貝了標準輸出,也就是同樣被重新導向到file中,最終結果就是標準輸出和錯誤都被重新導向到file中。
如果改成:command 2>&1 >file 2>&1,標準錯誤拷貝了標準輸出的行為,但此時標準輸出還是在終端。>file 後輸出才被重新導向到file,但標準錯誤仍然保持在終端。