Archive

文章標籤 ‘cron.daily’

OEL6 中的 Cron Daily 是何時執行呢?

2014年6月28日 尚無評論

在 RHEL 4 以前的排程 Cron ,基本上我們可以在 /etc/crontab 中去定義執行 cron.daoly、cron.weekly 與 cron.monthly 的時間,從 RHEL 5 以後的版本,這個配置做了調整,取消了原先在 /etc/crontab 中的配置,而是改用 anacrontab 來進行設定,如在 OEL 6 中的 /etc/anacrontab 設定:

[root@OEL-Master cron]# cat /etc/anacrontab
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22

#period in days delay in minutes job-identifier command
1 5 cron.daily nice run-parts /etc/cron.daily
7 25 cron.weekly nice run-parts /etc/cron.weekly
@monthly 45 cron.monthly nice run-parts /etc/cron.monthly

在這個配置中有幾個欄位:

  • period in days:差異天數
  • delay in minutes:延遲時間
  • job-identifer command:執行工作指令

舉個例子說,在 cron.daily 的配置設定為 1 5 cron.daily nice run-parts /etc/cron.daily,意思是系統每天會檢查 /var/spool/anacron/cron.daily 的最近一次執行時間戳記,確認與目前時間差異超過一天,就會先延遲五分鐘後開始執行後面指定作業。但這邊要特別注意的是,這個檢查時間與延遲時間會因為 RANDOM_DELAY 與 START_HOURS_RANGE 影響,以這個範例來說,anacron 會在每天的 3 點 ~ 22 點進行檢查,除了原本規則定義的延遲時間外,還會加上 RANDOM_DELAY 所設定的時間 45 分鐘,因此 cron.daily 一但被發現有差異超過一天,則會在 45+5 分鐘後開始進行執行。