====== CentOS6のcronとanacronの処理 ======
===== 初期の配置 =====
/
└── etc
├── cron.d
│ └── 0hourly : 毎時1分に /etc/cron.hourly 以下を実行
├── cron.daily
│ └── logrotate
├── cron.deny
├── cron.hourly
│ └── 0anacron : anacron 実行
├── cron.monthly
│ └──
├── cron.weekly
│ └──
└── crontab : 初期値は空
===== 各ファイル =====
==== /etc/crontab ====
システムのcrontab、初期値は空
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
==== /etc/cron.d/0hourly ====
毎時1分にcron.hourlyを実行
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
01 * * * * root run-parts /etc/cron.hourly
==== /etc/cron.hourly/0anacron ====
一時間ごとにanacronを起動
#!/bin/bash
# Skip excecution unless the date has changed from the previous run
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
# Skip excecution unless AC powered
if test -x /usr/bin/on_ac_power; then
/usr/bin/on_ac_power &> /dev/null
if test $? -eq 1; then
exit 0
fi
fi
/usr/sbin/anacron -s
==== /etc/anacrontab ====
anacronが/etc/cron.(daily|weekly|monthly)を実行
# /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=""
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