crontab(定時任務)

Centos crontab定時任務

閱讀目錄(Content)

CRONTAB是一個用於設置週期性被執行的任務的工具,有了它,我們就可以從定時工作中解放出來。

回到頂部(go to top)

一 : 檢查CRONTAB服務 

1. 檢查CRONTAB工具是否已經在主機上安裝 : crontab -l (當然後面會介紹它真正的用途) 
2. 檢查CRONTAB服務是否已經啓動 : service crond status(其實這個命令還可以檢查其他服務,例如 service httpd status 檢測apache是否在運行) 
3. 安裝:yum install crontabs

回到頂部(go to top)

二 : 命令功能 

通過crontab 命令,我們可以在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的單位可以是分鐘、小時、日、月、周及以上的任意組合。這個命令非常設合週期性的日誌分析或數據備份等工作。

回到頂部(go to top)

三 : 命令參數 

1. -u user:用來設定某個用戶的crontab服務,例如,“-u ixdba”表示設定ixdba用戶的crontab服務,此參數一般有root用戶來運行。

  1. file:file是命令文件的名字,表示將file做爲crontab的任務列表文件並載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。

  2. -e:編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的crontab文件。(常用)

  3. -l:顯示某個用戶的crontab文件內容,如果不指定用戶,則表示顯示當前用戶的crontab文件內容。(常用)

  4. -r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。

  5. -i:在刪除用戶的crontab文件時給確認提示。

下面是兩個最常用的命令: 
crontab -l 查看當前的任務列表,其實就是crontab文件的內容 
crontab -e 打開定時任務列表文件,進行編輯

回到頂部(go to top)

四 : crontab文件說明 


用戶所建立的crontab文件中,每一行都代表一項任務,每行的每個字段代表一項設置,它的格式共分爲六個字段,前五段是時間設定段,第六段是要執行的命令段,格式如下:

minute hour day month week command

其中:

  1. minute: 表示分鐘,可以是從0到59之間的任何整數。
  2. hour:表示小時,可以是從0到23之間的任何整數。
  3. day:表示日期,可以是從1到31之間的任何整數。
  4. month:表示月份,可以是從1到12之間的任何整數。
  5. week:表示星期幾,可以是從0到7之間的任何整數,這裏的0或7代表星期日。
  6. command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。

其實用一張圖就能更好理解了 
這裏寫圖片描述

回到頂部(go to top)

五 : 常用實例 


實例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:每30秒執行/etc/cron.hourly目錄內的腳本 
命令: 
*/1 * * * * root run-parts /etc/cron.hourly 
*/1 * * * * sleep 30s ; root run-parts /etc/cron.hourly

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