1. 程式人生 > >ubuntu crontab詳解及日誌查詢

ubuntu crontab詳解及日誌查詢

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執行日誌了。