crontab命令總結

類似Windows平臺下的計劃任務,Linux下使用cron服務來實現一些特定任務的定時執行。目前流行的系統都已默認安裝了cron並隨機啓動。

cron服務相關命令:

/sbin/service crond start     //啓動服務
/sbin/service crond stop      //關閉服務
/sbin/service crond restart //重啓服務
/sbin/service crond reload  //重新載入配置
以上是cron服務啓動的相關命令,如沒有啓動的話可進行手動啓動。當然,更好的方法是將它設爲隨機自動啓用,只需在/etc/rc.d/rc.local 這個腳本的末尾加上:

 

/sbin/service crond start

cron服務使用crontab命令來對其進行配置。

crontab命令語法:

crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
crontab命令選項:

file 使用file文件的內容作爲某個用戶的cron服務配置,內容會複製到cron服務的配置文件中
-u 設定某個用戶的cron服務配置,一般root 用戶在執行這個命令的時候需要此參數
-l   列出某個用戶cron服務配置
-r  刪除某個用戶的cron服務配置
-e  編輯某個用戶的cron服務配置,將使用vi打開配置文件進行編輯保存後退出,文件語法見後
舉例:

crontab -u fred -r  刪除fred用戶的cron配置
crontab -l 列出當前用戶的cron配置
crontab -r 刪除當前用戶的cron配置
crontab -e 編輯當前用戶的cron配置,添加或刪除計劃任務項
cron配置文件語法

每行表示一個指令,即表示一項計劃任務;每行由空格分隔的六個部分組成,前5部分表示定時任務的執行時間,剩餘部分爲定時任務要執行的命令,格式如下:

分 小時 日 月 星期 命令
Minute  Hour  Day  Month  DayOfWeek  command

Minute 每個小時的第幾分鐘執行該任務,0-59
Hour 每天的第幾個小時執行該任務,0-23
Day 每月的第幾天執行該任務,1-31
Month 每年的第幾個月執行該任務,1-12
DayOfWeek 每週的第幾天執行該任務,0-6,0表示週日
Command 指定要執行的程序
以上前五項可使用以下四個特殊符號:

*  表示所有數值,如第一位使用* 表示每分鐘
/  表示每,如第一位使用 */5 表示每5分鐘
-  表示數值範圍,如第二位使用2-4表示2點到4點
,  表示離散的多個數值,如第2位使用6,8 表示6點和8點
在每行的六項字段中,除了Command是每次都必須指定的字段以外,其它字段皆爲可選字段,可視需要決定。對於不指定的字段,要用“*”來填補其位置。

舉例如下:

5     *      *     *     *    ls  > /var/log.txt           指定每小時的第5分鐘執行一次ls命令,並將結果保存到/var/log.txt文件
30    5      *     *     *     ls    指定每天的 5:30 執行ls命令
30    7      8     *     *     ls    指定每月8號的7:30分執行ls命令
30    5      8     6     *     ls    指定每年的6月8日5:30執行ls命令
30    6      *     *     0     ls    指定每星期日的6:30執行ls命令 [注:0表示星期天,1表示星期1,以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30    3     10,20  *     *     ls    每月10號及20號的3:30執行ls命令 [注:“,”用來連接多個不連續的時段]
25    8-11   *     *     *     ls    每天8-11點的第25分鐘執行ls命令 [注:“-”用來連接連續的時段] 
*/15  *      *     *     *     ls    每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令]
30    6     */10   *     *     ls    每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls命令。]
cron配置文件

使用crontab命令添加完成計劃任務後會在/var/spool/cron目錄中生成一個用戶名字的文件,文件裏面就是你的計劃任務,cron服務會每分鐘讀取一次/var/spool/cron 中的文件。

系統計劃任務

還有一種方法可以添加計劃任務,編輯/etc/crontab (cron服務每分鐘也讀取一次/etc/crontab文件。

用crontab配置是針對某個用戶的,而編輯/etc/crontab是針對系統的任務。此文件的文件格式是:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出現錯誤,或者有數據輸出,數據作爲郵件發給這個帳號
HOME=/ //使用者運行的路徑,這裏是根目錄
# run-parts
#每小時執行/etc/cron.hourly內的腳本
01   *   *   *   *     root run-parts /etc/cron.hourly
#每天執行/etc/cron.daily內的腳本 
02   4   *   *   *     root run-parts /etc/cron.daily
#每星期執行/etc/cron.weekly內的腳本
22   4   *   *   0     root run-parts /etc/cron.weekly
#每月去執行/etc/cron.monthly內的腳本
42   4   1   *   *     root run-parts /etc/cron.monthly
注意”run-parts”這個參數,如果去掉這個參數的話,後面就要寫要運行的某個腳本名,而不是文件夾名。例如:11 2 21 10 * rm -rf /mnt/fb
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章