crontab入門及進階學習筆記

crontab不是一般意義下的linux指令,它更是一個配置工具。經過這個工具,咱們能夠爲系統定製固定週期的任務。linux


一、crond和crontabshell

1)   crond:cron服務的守護進程,用於按期調度。服務器

2)   crontab:cron提供的UI,用於編輯調度計劃。編輯器

 

二、crontab指令:工具

crontab –e:編輯已有按期調度任務,注意:該指令會啓動vi編輯器進行任務編輯。spa

crontab –l:顯示已有按期調度任務。日誌

 

三、cron任務格式:server

使用crontab –e編輯按期調度任務時,實際上能夠理解爲編輯一個配置文件,經過這個文件定義要執行哪些按期任務,執行的週期如何。進程

編輯過程能夠理解爲:進入vi編輯界面,以一個工做表明一行來編輯,而後輸入「:wq」保存便可。每項工做(每行)具備六個字段,各字段意義以下表所示,六個字段依次表示分鐘、小時、天、月、周和要執行的shell命令。crontab

表明意義

分鐘

小時

日期

月份

指令

數字範圍

0-59

0-23

1-31

1-12

0-7

指令

 

四、特殊字符的使用:

cron任務中,有時須要設置較爲複雜的任務處理邏輯,此時可能會用到以下特殊字符:

特殊字符

表明意義

*(星號)

表明任什麼時候候都接受。例如:30 10 * * * command中,day,month和week均爲「*」,表示不管哪一天、哪一個月、周幾,都在10點30分執行命令。

,(逗號)

表明多個並列時間。例如:* 3,6,9,12 * * * command,表示在3點,6點,9點或12點,執行命令。

-(減號)

表明連續區間。例如:* 9-17 * * * command,表示從9點到17點,每一分鐘都要執行這個任務。

/n(斜線)

表明每隔n個單位之間。例如:*/5 * * * * command,其中用*與/5來搭配,表示每隔5分鐘執行指令;也能夠寫成 0-59/5 ,做用相同。


五、舉例: 

# 每週五17點整,提醒全部組員發週報:

>crontab –e #進入編輯界面

0 17 * * 5 mail all_members < weekily_report_notify


#每週一00:30統計上週的服務器使用狀況,結果保存到以日期命名的文件:

>crontab –e #進入編輯界面

30 0  * * 1 /home/get_server_usage.sh> server_usage_`date +"\%Y\%m\%d"`.txt

#注意其中%的處理,須要在前面加反斜槓\進行轉義。

 

六、注意事項:

P.S.: crontab命令中的待執行腳本最好使用絕對路徑。

P.S.: 「周」這一欄中0和7都表明週日。

P.S.: cron調度的最小頻率爲1分鐘。

P.S.: 每月的最後一日沒法由crontab直接支持,須要經過腳本判斷。

P.S.:若是crontab運行出錯,能夠查看日誌文件/var/log/syslog,追溯問題。

相關文章
相關標籤/搜索