系統的crontab設定:/etc/crontab


crontab   -e   是針對用戶的cron來設計的,如果是系統的例行性任務,該怎么辦?是否還是需要以crontab -e來管理例行性命令?當然不需要,您只需要編輯/etc/crontab文件就可以了。需要注意的是:crontab -e的作用其實是/usr/bin/crontab這個執行文件,但是/etc/crontab是個純文本文件,可以root的身份編輯這個文件。
       
          基本上,cron服務的最低檢測時間單位是分鍾,所以cron會每分鍾讀取一次/etc/crontab與/var/spool/cron中的數據內容,因此,只要您編輯完/etc/crontab文件並且保存之后,crontab時設定就會自動執行。

       注意:在linux下的crontab會自動幫我們每分鍾重新讀取一次/etc/crontab的例行工作事項,但是某些原因或在其他的unix系統中,由於crontab是讀到內存中,所以在您修改完/etc/crontab之后可能並不會馬上執行,這時請重新啟動crond服務。
/etc/rc.d/init.d/crond   restart

好了,下面看看/etc/crontab文件的內容:
vi   /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

#   run-parts
01 * * * * root   nice   -n   19     run-parts   /etc/cron.hourly
02 4 * * * root   nice   -n   19    run-parts   /etc/cron.daily
22 4 * * * root    nice   -n   19   run-parts   /etc/cron.weekly
42 4 1 * * root   nice   -n    19  run-parts   /etc/cron.monthly

分時日月周   用戶   參數設定值   參數設定值   指令段

       從這個文件的內容可以看出,這個文件與輸入crontab -e后的內容幾乎完全相同,只是下面幾個地方有所區別:


MAILTO=root:這個字段說明了當/etc/crontab文件中的例行性命令發生錯誤時,會將錯誤信息或屏幕顯示的信息傳遞給誰?由於root無法在客戶端收信,因此,可以將這個email改成自己普通用戶帳號。 
 01 * * * * root   nice   -n   19     run-parts   /etc/cron.hourly:在#run-parts這一行以后的命令,我們可以發現,5個數字后面接的是root,這代表執行的層級為root身份。當然,您也可以root改成其他身份,而run-parts表示后面接的是/etc/cron.hourly是一個目錄內(/etc/cron.hourly)的所有可執行文件,也就是說每個小時的01分,系統會以root的身份到/etc/cron.hourly目錄下執行所有可以執行的文件。系統本來就默認了這4個目錄,您可以將每天需要執行的命令直接寫到/etc/cron.daily中,還不需要用到crontab -e程序,很方便。

         注意:基本上,/etc/crontab支持兩種輸入指令的方式,一種是直接以指令形式輸入,一種則是以目錄形式輸入。

指令形式

01   * * * * test   mail   -s   test   test   <   /home/test/test/test.txt
用戶是test,且每小時執行一次指令mail……

目錄形式

*/5   *  *  *  * root run-parts   /root/runcron
建立一個/root/runcron目錄,將每隔5分鍾執行一次的可執行文件都寫到該目錄下,就可以讓系統每5分鍾執行一次該目錄下的所有可執行文件。
           
          這樣就知道run-parts的作用了吧!此外,與crontab -e規划中不同的是,多了一個用戶層級的概念。通常,我們都是以root的角度來規划例行命令的,但是總有不需要root的場合,因此可以使用這個層級來規范該程序的用戶所屬。

        如果每個流程都在同一時間啟動,那么在某個時段,系統會非常的繁忙,所以這時必須分別設定。可以這樣做:
1,6,11,16,21,26,31,36,41,46,51,56 * * * * root …………   // 省略號代表命令
2,7,12,17,22,27,32,37,42,47,52,57 * * * * root ………… 
3,8,13,18,23,28,33,38,43,48,53,58 * * * * root ………… 
4,9,14,19,24,29,34,39,44,49,54,59 * * * * root ………… 
 注意,要用","分隔時,不要帶有空格。如此一來,則可以將每5分鍾工作的流程分別安排在不同的時刻進行。
文章出處:http://www.diybl.com/course/6_system/linux/Linuxjs/2008626/128554.html



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com