一、概述:
任務調度:系統在某個時間執行的特定命令或程序.任務調度分類: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
2 進入調度文件命令:crontab -e
rw@rw-Precision-T1700:~$ crontab -e
3 第一次運行,可能要求你選擇文本編輯軟件,系統推薦使用nano編輯器
4 編輯調度文件,點擊“ESC”鍵,輸入 :wq 按回車保存
*/2 * * * * date >> /home/rw/time.log
5 運行命令: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文件時給確認提示。