機械翻訳について

3 anacronジョブの構成

anacronを使用して、継続的な稼働時間ではなく断続的なシステムでの定期的なタスクをスケジュールします。

anacronユーティリティは、システムがオフラインの場合にジョブが見逃されないように、特定の日または時間を指定するのではなく、日次、週次または月次間隔でジョブを実行するようにスケジュールします。 もともと、定期的に停止またはオフにされるラップトップ・コンピュータでの使用を目的としていましたが、エンタープライズ環境でも、定期的にオフラインにされる永続的なクラウド・インスタンス、コンテナおよび仮想マシンのタスクをスケジュールして、消費電力を削減し、不要になったときにホスティング・コストを削減することもできます。

anacronがまだ実行されておらず、システムがバッテリ電源ではなくメインに接続されている場合、crondanacronを自動的に起動します。

crondデーモンは、/etc/cron.d/0hourlyのスケジュールに従って、/etc/cron.hourly/0anacronスクリプトを毎時rootとして実行します。 次に、/etc/anacrontabの構成設定に基づいて、0anacronスクリプトは、/etc/cron.daily/etc/cron.weeklyおよび/etc/cron.monthlyディレクトリの内容を処理します。

スケジュールされたジョブがシステム停止時間のために実行されていない場合、そのジョブはシステムの再起動時に実行されます。

システムanacronジョブは、次のように/etc/anacrontab内で定義されます:

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

このファイルの上部には、ジョブを実行する環境のSHELLPATHMAILTORANDOM_DELAYおよびSTART_HOURS_RANGE変数の定義が含まれており、その後にジョブ定義自体が続きます。 コメント行は#の文字で始まります。

RANDOM_DELAYは、anacronによってジョブに対するdelayパラメータに追加されるランダム時間の最大分数です。 デフォルトの最小遅延は6分です。 ランダム・オフセットは、多数のジョブの同時実行が原因のanacronによるシステムのオーバーロードを回避することが目的です。

START_HOURS_RANGEは、スケジュールされたジョブをanacronで実行できる1日の中の時間範囲です。

このファイルの下部にはジョブ定義が含まれています。 各ジョブは、次の見出しが付いた4つの列に分かれたエントリからなります。

period

日単位、週単位または月単位の@daily@weeklyまたは@monthlyとして指定されたジョブ実行の頻度。

delay

ジョブの実行まで待機する分数。

job-id

ログ・ファイル内のジョブの一意の名前。

command

実行するシェル・スクリプトまたはコマンド。

デフォルトでは、anacronは03:00から22:00の間にジョブを実行し、11分から50分の間でジョブを遅延させます。 /etc/cron.daily内のジョブ・スクリプトは、システムが稼働中の場合は毎日03:11から03:50までの間に実行され、そうでない場合は、システムのブート後に、22:00より前に実行されます。 run-partsスクリプトでは、その引数で指定されたディレクトリ内の各プログラムが連続して実行されます。

/etc/cron.weekly内のスクリプトは、毎週31分から70分までの遅延オフセットで実行されます。

/etc/cron.monthly内のスクリプトは、毎月51分から90分までの遅延オフセットで実行されます。

詳細は、anacron(8)およびanacrontab(5)の各マニュアル・ページを参照してください。