ubuntu crontab詳解及日誌查詢
阿新 • • 發佈:2019-01-22
crontab基礎知識及用法:
命令格式:crontab [-u username] [-l|-e|-r]
引數:
-u : 只有root才能進行這個任務,也即幫助其他使用者新建/刪除crontab工作排程;
-e :編輯crontab的工作內容;
-l :刪除所有的crontab的工作內容,若僅要刪除一項,請用-e去編輯。
第一次會讓你選擇編譯器,如果選錯編譯器了要更改編譯器 輸入 select-editor 重新選擇
範例:在5月1日23:59發一封信
直接執行crontab -e之後
59 23 1 5 * mail kiki < /home/lover.txt
每項工作的格式都是具有六個欄位:
第一個:分鐘(0~59)
第二個:小時(0~23)
第三個:日期(1~31)
第四個:月份(1~12)
第五個:周(0~7),數字0或7都代表“星期日”
第六個:就是要執行的命令
特殊字元:
*(星號):代表任何時刻都接受
- 例如:* 5 * * * command表示無論何月,何日,周幾的5點都會執行
,(逗號):代表分割時段的意思。
- 例如:要執行的任務是在4:00和5:00 就是 0 5,6 * * * command。
-(減號):代表一段時間範圍內
- 例如9點到12點之間每個小時的10時都進行一項工作,就是 10 9-12 * * *
/n(斜線):n代表某一個數字,即表示每隔n單位間隔
- 例如每一分鐘執行一次,就是 */1 * * * * command
範例:每五分鐘執行一次命令:
0-59/5 * * * * command
查詢當前使用者中當前的crontab內容:
PS:
- 如果僅僅是想要刪除一項工作的話,必須要使用 crontab -e 去編輯
- 如果想要全部刪除的時候才使用 crontab -r
- 如果統一時刻啟動多個流程的話,我們的系統就會變得相當繁忙,可以將分鐘數錯開,用之前講過的“,” 逗號。
- 還有一點是 周與日和月不能同時並存
-例如30 12 11 9 5 command ,你認為是9月5日並且是週五才會進行,但是系統會判定每,每個週五或每年9月5日分別執行一次。
下面說一先cron日誌的問題:
有好多小夥伴可能找不到cron的日誌,那是因為Ubuntu系統預設是不開啟cron日誌的,不信你cd 到/var/log目錄下是找不到cron.log檔案的。
首先我們把cron日誌開啟
如何開啟,很簡單,控制檯輸入
vi /etc/rsyslog.d/50-default.conf
開啟檔案,在檔案中找到cron.*,把前面的#去掉,儲存退出,輸入
sudo service rsyslog restart
重啟系統日誌,然後稍微等下應該就能在/var/log目錄下看到cron.log,vi cron.log就可以檢視cron執行日誌了。