web-dev-qa-db-ja.com

/etc/cron.hourlyや/etc/cron.dailyなどのスクリプトは自動的に実行されますか?

_/etc/cron.d/_のエントリが自動的に実行されることを理解しました。しかし、これらは_/etc/_でも見つかりました

_/etc/cron.daily/
/etc/cron.hourly/
/etc/cron.monthly/
/etc/cron.weekly/
_

_/etc/cron.d/_で、次の内容の_0hourly_を見つけました:

_01 * * * * root run-parts /etc/cron.hourly
_

_*daily_、_*monthly_、または_*weekly_というファイルはありません。

これは、スクリプトを_/etc/cron.hourly_に追加すると、自動的に実行されることを意味しますか?そして、これは_/etc/cron.daily_、_/etc/cron.monthly/_および_/etc/cron.weekly/_のスクリプトでは発生しませんか?

編集:

変数ShellPATHおよびMAILTOを初期化する場合を除いて、私の_/etc/crontab_は空です。

_/etc/cron.hourly/_で、_0anacron_が今日実行されたかどうかを確認するスクリプト_cron.daily_を見つけました。これを含む_/etc/anacron_も見つかりました:

_# /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
_

私はそれを行うためにいくつかの読書をしたと思います。特にanacron(8)およびanacrontab(5)

4
klutt

CentOSはこの点ではUbuntuのようであり、構成が少し異なるだけです。 Ubuntuはanacronを使用して毎日/毎週/毎月のジョブを実行し、それらは/etc/crontabおよび/etc/anacrontab

CentOSでは、最初に次のものが用意されています。

# cat /etc/cron.hourly/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

anacronを1日に1回チェック/実行し、その後:

# 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

ここで、毎日、毎週、毎月のcrontabが構成されています。

5
muru