anacron とは何ですか? cron との違いは?
Anacron は、日単位で指定された頻度で定期的にコマンドを実行するために使用されます。 cron とは異なり、マシンが継続的に実行されていることを想定していません。したがって、1 日 24 時間稼働していないマシンで使用して、通常のジョブを日次、週次、月次のジョブとして制御できます。 Anacron は、システムのアップタイムが許す限り、スケジュールされたジョブを実行しようとします。
anacron 構成ファイル
/etc/anacrontab anacron 構成ファイルです。以下は、未編集の anacron ファイルのサンプルです:
# 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
ここで:
1.日数 :ジョブの実行頻度を日単位で指定します。この変数は、整数またはマクロ (@daily、@weekly、@monthly) で表すことができます。ここで、@daily は整数 1 と同じ値を表し、@weekly は 7 と同じ値を表し、@monthly はジョブが実行されることを指定します。月の長さに関係なく、月に 1 回。
2.分単位の遅延 :必要に応じて、ジョブを実行する前に anacron が待機する分数を指定します。この変数は整数で表され、0 は遅延なしを意味します。
3.ジョブ識別子 :ログ ファイルで使用されるジョブの一意の名前を指定します。
4.コマンド :実行するコマンドを指定します。このコマンドは、ps -ef>> /tmp/processes などのコマンド、またはカスタム スクリプトを実行するコマンドのいずれかです。
構成ファイルの最後の 3 行は、システム定義の cron ジョブです。
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 構成の例
anacron の設定例を見てみましょう。システムが起動してから 35 分の遅延で毎日「daily_job.sh」という名前のスクリプトを実行する anacron ジョブを作成しています。
# cat /etc/anacrontab RANDOM_DELAY=30 START_HOURS_RANGE=10-18 1 35 daily_job sh /var/tmp/daily_job.sh
システムが実行中の場合、ジョブは START_HOURS_RANGE に従って実行されます これは /etc/anacrontab ファイルで定義されています。 START_HOURS_RANGE 変数は、スケジュールされた jobb の実行が許可される時間の範囲を定義します。私たちの場合、それは午前 10 時です。午後6時まで(10-18)
# grep -i START_HOURS_RANGE /etc/anacrontab START_HOURS_RANGE=10-18
RANDOM_DELAY variable は、ジョブごとに指定される分単位の遅延変数に追加される最大分数を示します。したがって、RANDOM_DELAY を 30 に設定すると、その特定の anacrontab の各ジョブの分単位の遅延に 0 ~ 30 分がランダムに追加されます。 0 に設定すると、ランダム遅延は追加されません。
# grep -i RANDOM_DELAY /etc/anacrontab RANDOM_DELAY=30