計劃任務crontab

**計劃任務的基本格式 :**
  *  *  *  *  *  command
  分  時  日  月  周         命令

Minute      Hour       Day       Month      Week        command
分鐘          小時        天            月           星期            命令
0-59          0-23       1-31         1-12        0-6          command
**解釋:**
第1列表示 分鐘1~59 每分鐘用*或者 */1表示
第2列表示 小時1~23(0表示0點)
第3列表示 日期1~31
第4列表示 月份1~12
第5列標識號 星期0~6(0表示星期天)
第6列要運行的命令

每個字段代表的含義如下:

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服務
如果計劃任務 放在/etc/crontab裏面 
而不是單單 crontab -e這樣編輯   crontab  -l查看

但是etc下的crontab配置是要指定用戶去執行的,不然人家不知道你用什麼用戶去執行這個定時任務,比如我都是用root用戶的權限,那麼vim /etc/crontab進去以後書寫格式如下:
*/5 * * * * root /data/shell/rsync227.sh >>/dev/null 2>&1 &
**crontab文件的一些例子:**
每晚的21:30重啓apache
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

每月1、10、22日的4 : 45重啓apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

每週六、週日的1 : 10重啓apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

每天18 : 00至23 : 00之間每隔30分鐘重啓apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章