1. 程式人生 > >linux-centOS6.6下的crontab計劃任務配置

linux-centOS6.6下的crontab計劃任務配置

1.crontab(定時任務,計劃任務)

#crontab -u <-l, -r, -e>

    -u:指定一個使用者     -l:列出某個使用者的任務計劃     -r:刪除某個使用者的任務     -e:編輯某個使用者的任務 2.顯示行意義解析:

00 02 * * 6 /sbin/reboot  > /dev/null 2>&1

表示每個週六的零晨2點進行重啟.

/dev/null 2>&1 表示將正確或者錯誤的重啟資訊重新定向到垃圾桶。

Minute Hour Day Month Week command
分鐘 小時 天 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command

Minute:每個小時的第幾分鐘執行該任務
Hour:每天的第幾個小時執行該任務
Day:每月的第幾天執行該任務
Month:每年的第幾個月執行該任務
DayOfWeek:每週的第幾天執行該任務,0表示週日
Command:指定要執行的程式 、指令碼或命令

如果不指定欄位,需要用“ * ”星號來填補:

    “*”代表取值範圍內的數字,     “/”代表”每”,     “-”代表從某個數字到某個數字,     “,”分開幾個離散的數字。

3.配置檔案:

前四行是用來配置 cron 任務執行環境的變數:
 
SHELL 變數的值指定shell 環境(此處預設為 bash shell);PATH 變數定義用來執行命令的程式路徑;cron 任務的輸出被郵寄給 MAILTO 變數定義的使用者名稱,如果 MAILTO 變數被定義為空白字串(MAILTO=""),電子郵件就不會被寄出;HOME 變數可以用來設定在執行命令或指令碼時使用的主目錄。
 
如在 /etc/crontab 檔案中run-parts部分所示,它使用 run-parts 指令碼來執行存在於 /etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和 /etc/cron.monthly 目錄中的指令碼,這些指令碼被相應地按照預設時間在每小時、每日、每週、或每月執行。這些目錄中的檔案應該是 shell 指令碼,並且具有可執行許可權(chmod +x filename)。
 
如果某 cron 任務需要根據排程來執行,而不是每小時、每日、每週、或每月地執行,它可以被新增到/etc/cron.d目錄中。該目錄中的所有檔案使用和 /etc/crontab 中一樣的語法。
 
每次編輯完某個使用者的cron設定後,cron自動在/var/spool/cron下生成一個與此使用者同名的檔案,此使用者的cron資訊都記錄在這個檔案中,這個檔案是不可以直接編輯的,只可以用crontab -e 來編輯。cron啟動後每過一份鍾讀一次這個檔案,檢查是否要執行裡面的命令。因此此檔案修改後不需要重新啟動cron服務。

4.示例:

5  * * * * ls:指定每小時的第5分鐘執行一次ls命令
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命令 ]
 
每天07:50以root 身份執行/etc/cron.daily目錄中的所有可執行檔案:
50 7 * *  * root run-parts  /etc/cron.daily [ 注:run-parts引數表示,執行後面目錄中的所有可執行檔案
 
第10、20、30分鐘輸出到/tmp/cron1.txt:
10,20,30 * * * * echo "第10、20、30分鐘輸出一次" >> /tmp/cron1.txt
 
以使用者lzw.me的身份每兩小時就執行某個程式:
0 */2 * * * lzw.me /usr/bin/somecommand >> /dev/null 2>&1

cron配置檔案路徑
#vi /etc/crontab
 
重啟cron的方法
#/etc/rc.d/init.d/crond restart
Usage: /etc/rc.d/init.d/crond {start|stop|status|reload|restart|condrestart}

別忘了將指令碼改成可執行
chmod +x filename