歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> CentOS 6.4中的cron計劃任務配置方法

CentOS 6.4中的cron計劃任務配置方法

日期:2017/2/28 14:23:38   编辑:Linux教程
cron來源於希臘單詞chronos(意為“時間”),指Linux系統下一個自動執行指定任務的程序(計劃任務)。 一、crontab命令選項 #crontab -u <-l, -r, -e> -u:指定一個用戶 -l:列出某個用戶的任務計劃 -r:刪除某個用戶的任務 -e:編輯某個用戶的任務 二、cron文件語法與寫法 可用crontab -e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件。具體格式如下: Minute Hour Day Month Week command
分鐘 小時 天 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command 每個字段代表的含義如下: Minute:每個小時的第幾分鐘執行該任務
Hour:每天的第幾個小時執行該任務
Day:每月的第幾天執行該任務
Month:每年的第幾個月執行該任務
DayOfWeek:每周的第幾天執行該任務,0表示周日
Command:指定要執行的程序 、腳本或命令 在這些字段裡,除了“Command”是必須指定的字段以外,其它字段皆為可選。對於不指定的字段,要用“*”來填補其位置。 三、幾個特殊符號的含義*”代表取值范圍內的數字, “/”代表”每”, “-”代表從某個數字到某個數字, “,”分開幾個離散的數字。 四、關於cron配置文件/etc/crontab cron 的主配置文件是 /etc/crontab,它包括下面幾行: SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly 前四行是用來配置 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服務。 五、常見cron示例參考 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 六、特別提示 A、cron配置文件路徑 #vi /etc/crontab B、重啟cron的方法 #/etc/rc.d/init.d/crond restart Usage: /etc/rc.d/init.d/crond {start|stop|status|reload|restart|condrestart} C、別忘了將腳本改成可執行 chmod +x filename

Linux中利用crontab創建計劃任務 http://www.linuxidc.com//Linux/2013-06/86401.htm

Linux中用crontab例行工作安排 http://www.linuxidc.com//Linux/2013-06/85441.htm

Linux crontab不執行問題排查 http://www.linuxidc.com//Linux/2013-06/85432.htm

Ubuntu使用crontab定時任務 http://www.linuxidc.com//Linux/2013-05/84770.htm

Linux計劃任務(at batch crontab anacron) http://www.linuxidc.com//Linux/2013-03/81584.htm

更多CentOS相關信息見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14

Copyright © Linux教程網 All Rights Reserved