anacron 是和 cron 相似的任務調度器,只不過它並不要求系統持續運行,它可以用來運行通常由 cron 運行的每日、每周、和每月的作業;
要使用 anacron 服務,你必須安裝了 anacron 軟件包, anacron 服務必須在運行;
要判定該服務是否在運行,使用 /sbin/service anacron status 命令
1 、配置 anacron
Anacron 與 cron 一樣用來調度重復的任務,周期性安排作業;
任務被列在配置文件 /etc/anacrontab 中。文件中的每一行都代表一項任務,格式是:
格式: period delay job-identifier command
period — 命令執行的頻率(天數)
delay — 延遲時間(分鐘)
job-identifier — 任務的描述,用在 anacron 的消息中,並作為作業時間戳文件的名稱,只能包括非空白的字符(除斜線外)。
command — 要執行的命令
對於每項任務, anacron 先判定該任務是否已在配置文件的 period 字段中指定的期間內被執行了。如果它在給定期間內還沒有被執行, anacron 會等待 delay 字段中指定的分鐘數,然後執行 command 字段中指定的命令;
任務完成後, anacron 在 /var/spool/anacron 目錄內的時間戳文件中記錄日期;這裡只記錄日期,無具體時間,而且 job-identifier 的數值被用做時間控制文件的名稱。
Anacron 與 cron 配置文件相似, SHELL 和 PATH 之類的環境變量可以在 /etc/anacrontab 文件的前部定義;
現在從配置文件入手來分析anacron:
# /etc/anacrontab: configuration file for anacron
# See anacron(8) and anacrontab(5) for details.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
1 65 cron.daily run-parts /etc/cron.daily
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly
1 ,2行注釋告訴用戶文件是做什麼用的,從man 5 anacrontab獲取配置文件幫助。
3,4行是定義用戶基本環境變量,保證程序可以正常運行。
5,6,7行是默認配置下所執行的任務,也是最重要的任務配置部分。
格式為:period delay job-identifier command
格式分為四部分:執行頻率(天數), 延遲時間(分鐘),任務描述,需要執行的命令。
第一部分是指執行的周期天數,即任務多少天執行一次, monthly 就是一個月( 30 天)內執行, weekly 即是一周 內執行一次。
第二部分是指命令執行的重試時間,分為兩種:
第三部分 job-identifier:anacron 每次啟動時都會在 /var/spool/anacron 中建立一個以 job-identifier 為文件名的文件,記錄指定的任務完成時間,如果任務是第一次運行,則該文件是空的,這裡只要注意不要用不能作為文件名的字符串即可,另外文件名不要太長。
/sbin/service anacron start 啟動該服務
/sbin/service anacron stop 停止該服務