crontab 詳解

一、概述:

任務調度:系統在某個時間執行的特定命令或程序.任務調度分類:1.系統工作任務:系統中某些重要的週期性工作,如:系統備份,殺毒等

     2.用戶工作任務:用戶操作執行的程序

任務調度文件位置:/etc/crontab

編輯調度文件的命令:crontab  -e

執行:調度任務進程會在滿足預設時間條件後自動執行

二、實例講解:

單任務調度:

實例實現:每2分鐘將系統時間追加至 time.log 文件

分步命令:

1. 顯示系統時間命令:date

2. 把系統時間寫入文本time.log:date > /home/rw/time.log

3. 每分鐘將系統時間追加至 time.log 文件:  date >>  /home/rw/time.log

4. 寫入調度文件的命令內容:* * * * * date >> /home/rw/time.log

三、操作 步驟:

1 查看cron 運行狀態

sudo service cron status

rw@rw-Precision-T1700:~$ sudo service cron status
cron start/running, process 2330

進入調度文件命令:crontab -e

rw@rw-Precision-T1700:~$ crontab -e

第一次運行,可能要求你選擇文本編輯軟件,系統推薦使用nano編輯器


  編輯調度文件,點擊“ESC”鍵,輸入 :wq 按回車保存

*/2 * * * * date >> /home/rw/time.log 

運行命令:cat  time.log  查看調度任務結果如下:

2016年 03月 01日 星期二 11:14:01 CST
2016年 03月 01日 星期二 11:16:01 CST
2016年 03月 01日 星期二 11:18:01 CST
2016年 03月 01日 星期二 11:20:01 CST
2016年 03月 01日 星期二 11:22:01 CST
2016年 03月 01日 星期二 11:24:01 CST
2016年 03月 01日 星期二 11:26:01 CST
2016年 03月 01日 星期二 11:28:01 CST
2016年 03月 01日 星期二 11:30:01 CST


6.   調度任務查看命令:crontab  -l

7.   調入任務結束命令:crontab  -r

執行此命令後  /etc/crontab  文件的內容會被刪除


四、理論基礎:

4.1 crontab文件的含義:

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

minute   hour   day   month   week   command

其中:

minute: 表示分鐘,可以是從0到59之間的任何整數。

hour:表示小時,可以是從0到23之間的任何整數。

day:表示日期,可以是從1到31之間的任何整數。

month:表示月份,可以是從1到12之間的任何整數。

week:表示星期幾,可以是從0到7之間的任何整數,這裏的0或7代表星期日。

command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。

    

在以上各個字段中,還可以使用以下特殊字符:

星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件後每月都執行該命令操作。

逗號(,):可以用逗號隔開的值指定一個列表範圍,例如,“1,2,5,7,8,9”

中槓(-):可以用整數之間的中槓表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”

正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執行一次。

4.2 crontab服務


服務操作說明:

sudo service cron start //啓動服務

sudo service cron stop //關閉服務

sudo service cron restart //重啓服務

sudo service cron reload //重新載入配置

查看crontab服務狀態:

service crond status

手動啓動crontab服務:

service crond start

4.3 crontab命令詳解

1.命令格式:

crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]

2.命令功能:

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

3.命令參數:

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

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

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

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

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

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


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