原文鏈接:http://huangfuligang.blog.51cto.com/9181639/1608549
一、cron.d增加定時任務
當我們要增加全局性的計划任務時,一種方式是直接修改/etc/crontab。但是,一般不建議這樣做,/etc/cron.d目錄就是為了解決這種問題而創建的。
例如,增加一項定時的備份任務,我們可以這樣處理:在/etc/cron.d目錄下新建文件backup.sh,內容如下:
# m h dom mon dow user command
* 1 * * * root /sbin/mon_zetc_logtar.sh
cron進程執行時,就會自動掃描該目錄下的所有文件,按照文件中的時間設定執行后面的命令。
cron執行時,也就是要讀取三個地方的配置文件:一是/etc/crontab,二是/etc/cron.d目錄下的所有文件,三是每個用戶的配置文件
二、控制對 cron 的使用
/etc/cron.allow 和 /etc/cron.deny 文件被用來限制對 cron 的使用。這兩個使用控制文件的格式都是每行一個用戶。兩個文件都不允許空格。如果使用控制文件被修改了,cron 守護進程(crond)不必被重啟。使用控制文件在每次用戶添加或刪除一項 cron 任務時都會被讀取。
無論使用控制文件中的規定如何,根用戶都總是可以使用 cron。
如果 cron.allow 文件存在,只有其中列出的用戶才被允許使用 cron,並且 cron.deny 文件會被忽略。
如果 cron.allow 文件不存在,所有在 cron.deny 中列出的用戶都被禁止使用 cron
三、啟動或關閉
由於Cron 是Linux的內置服務,可以用以下的方法啟動、關閉這個服務:
/sbin/service crond start //啟動服務
/sbin/service crond stop //關閉服務
/sbin/service crond restart //重啟服務
/sbin/service crond reload //重新載入配置
四、crontab介紹
/etc/crontab 文件中的每一行都代表一項任務,它的格式是:
minute hour day month dayofweek command |
minute — 分鍾,從 0 到 59 之間的任何整數
-
hour — 小時,從 0 到 23 之間的任何整數
-
day — 日期,從 1 到 31 之間的任何整數(如果指定了月份,必須是該月份的有效日期)
-
month — 月份,從 1 到 12 之間的任何整數(或使用月份的英文簡寫如 jan、feb 等等)
-
dayofweek — 星期,從 0 到 7 之間的任何整數,這里的 0 或 7 代表星期日(或使用星期的英文簡寫如 sun、mon 等等)
-
command — 要執行的命令(命令可以是 ls /proc >> /tmp/proc 之類的命令,也可以是執行你自行編寫的腳本的命令。)
在以上任何值中,星號(*)可以用來代表所有有效的值。譬如,月份值中的星號意味着在滿足其它制約條件后每月都執行該命令。
整數間的短線(-)指定一個整數范圍。譬如,1-4 意味着整數 1、2、3、4。
用逗號(,)隔開的一系列值指定一個列表。譬如,3, 4, 6, 8 標明這四個指定的整數。
正斜線(/)可以用來指定間隔頻率。在范圍后加上 /<integer> 意味着在范圍內可以跳過 integer。譬如,0-59/2可以用來在分鍾字段定義每兩分鍾。間隔頻率值還可以和星號一起使用。例如,*/3 的值可以用在月份字段中表示每三個月運行一次任務。
開頭為井號(#)的行是注釋,不會被處理