anacronについて

anacronについて

中井先生本参考。

・anacronの実態は、/etc/cron.hourly以下にあるファイルで0anacronで実行する。

0anacron中身
------------------------------------------
#!/bin/sh
# Check whether 0anacron was run today already
if test -r /var/spool/anacron/cron.daily; then
day=`cat /var/spool/anacron/cron.daily`
fi
if [ `date +%Y%m%d` = "$day" ]; then
exit 0;
fi

# Do not run jobs when on battery power
if test -x /usr/bin/on_ac_power; then
/usr/bin/on_ac_power >/dev/null 2>&1
if test $? -eq 1; then
exit 0
fi
fi
/usr/sbin/anacron -s

------------------------------------------

大事なこと
①最後の1行でanacronを実行している。
②「/var/spool/anacron/cron.daily」に本日の日付がある場合は
本日anacronが動作したとして実施しない。
anacronは1日一回しか動作しない。このシェルの中身がその理由。


anacronは毎時1分に実行している。
/etc/cron.d/0hourlyが実行している。
01 * * * * root run-parts /etc/cron.hourly

ではどんなファイルを実行しているのか見てみる。

# /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
[root@localhost cron.hourly]#