公開:

anacronとは?意味をわかりやすく簡単に解説

text: XEXEQ編集部


anacronとは

anacronはシステムが稼働していない時に実行されなかったcronジョブを実行するためのプログラムです。cronは指定した時刻に指定したコマンドを実行するスケジューラですが、システムがその時刻に稼働していない場合、コマンドは実行されません。

anacronはシステムの起動時にcronが実行できなかったジョブを確認し、それらを実行します。これにより、システムが停止していた時間帯にスケジュールされていたジョブも確実に実行することができます。

anacronは実行間隔を日単位で指定するのが特徴です。これはcronが分単位で実行間隔を指定するのとは異なります。anacronは日単位のジョブ管理に特化したツールと言えます。

また、anacronはジョブの実行状況をログファイルに記録します。これにより、ジョブの実行履歴を確認することができ、トラブルシューティングにも役立ちます。

anacronはサーバーなどの長時間稼働するシステムよりも、パソコンなどの間欠的に稼働するシステムで威力を発揮します。計画的なメンテナンスやバックアップなどの日次タスクを確実に実行したい場合に、anacronは非常に有用なツールです。

anacronの設定方法

anacronの設定に関して、以下3つを簡単に解説していきます。

  • anacrontabファイルの編集方法
  • anacronの設定オプション
  • anacronのジョブ定義の書き方

anacrontabファイルの編集方法

anacronの設定はanacrontabファイルに記述します。このファイルは通常、/etc/anacrontabに存在します。anacrontabファイルを編集するにはテキストエディタを使用します。

anacrontabファイルの編集はrootユーザーの権限が必要です。sudoコマンドを使用して、rootユーザーになってからファイルを編集しましょう。編集後はファイルを保存して閉じます。

anacrontabファイルを編集した後はanacronサービスを再起動する必要はありません。anacronは次回の実行時に自動的に新しい設定を読み込みます。

anacronの設定オプション

anacrontabファイルにはいくつかの設定オプションがあります。主なオプションにはジョブの実行間隔を指定するPERIOD、ジョブの実行遅延時間を指定するDELAY、ジョブの実行時間帯を指定するSTARTとENDなどがあります。

PERIODはジョブの実行間隔を日単位で指定します。例えば、PERIOD=7とすると、7日に1回の頻度でジョブが実行されます。DELAYはシステム起動後にジョブを実行するまでの遅延時間を分単位で指定します。

STARTとENDはジョブの実行を許可する時間帯を指定します。例えば、START=03:00とEND=06:00とすると、午前3時から6時の間にジョブが実行されます。

anacronのジョブ定義の書き方

anacrontabファイルには実行するジョブを定義します。ジョブの定義は1行で記述します。1行の書式は次のようになります。

period delay job-identifier command

periodはジョブの実行間隔を日単位で指定します。delayはジョブの実行遅延時間を分単位で指定します。job-identifierはジョブを識別するための一意な名前です。

commandは実行するコマンドを指定します。コマンドはフルパスで指定する必要があります。また、コマンドの実行結果はメールで通知されるので、メールサーバーの設定が必要です。

anacronのログファイル

anacronのログファイルに関して、以下3つを簡単に解説していきます。

  • ログファイルの位置
  • ログファイルの内容
  • ログファイルのローテーション

ログファイルの位置

anacronのログファイルはデフォルトでは/var/log/anacronに存在します。このファイルにはanacronが実行したジョブの記録が保存されています。

ログファイルのパスはanacrontabファイルのLOGFILEオプションで変更することができます。LOGFILEオプションを使用することで、ログファイルを別の場所に保存したり、ログファイル名を変更したりすることができます。

ログファイルはテキスト形式で記録されています。したがって、テキストエディタやlessコマンドなどを使用して、ログファイルの内容を確認することができます。

ログファイルの内容

anacronのログファイルには実行されたジョブの情報が記録されています。具体的にはジョブの開始時刻、終了時刻、実行結果、実行したコマンドなどが記録されます。

ログファイルの各行は次のような形式になっています。

YYYY-MM-DD HH:MM:SS job-identifier (anacron[PID]): Job 'job-name' started
YYYY-MM-DD HH:MM:SS job-identifier (anacron[PID]): Job 'job-name' terminated (exit status: X)

YYYY-MM-DD HH:MM:SSはジョブの開始時刻と終了時刻を表します。job-identifierはジョブを識別するための名前です。PIDはanacronプロセスのプロセスIDです。job-nameはジョブの名前です。exit statusはジョブの終了ステータスを表します。

ログファイルのローテーション

anacronのログファイルはデフォルトではローテーションされません。つまり、ログが無制限に蓄積されていきます。ログファイルのサイズが大きくなりすぎると、ディスク容量を圧迫する可能性があります。

ログファイルをローテーションするにはlogrotateを使用します。logrotateは指定したスケジュールに従ってログファイルをローテーションするツールです。

logrotateの設定ファイルは/etc/logrotate.confまたは/etc/logrotate.d/ディレクトリ内にあります。anacronのログファイルをローテーションするには/etc/logrotate.d/anacronファイルを作成し、ローテーションの設定を記述します。

anacronとcronの違い

anacronとcronの違いに関して、以下3つを簡単に解説していきます。

  • 実行タイミングの違い
  • 設定方法の違い
  • 適した用途の違い

実行タイミングの違い

cronは指定した時刻にジョブを実行するスケジューラです。例えば、毎日午前3時にジョブを実行するように設定することができます。ただし、システムがその時刻に稼働していない場合、ジョブは実行されません。

一方、anacronはシステムが稼働していない時に実行されなかったジョブを、システムの起動時に実行します。つまり、anacronは実行間隔を指定しますが、実行タイミングは保証されません。

したがって、cronは実行タイミングが重要なジョブに適しており、anacronは実行タイミングが重要ではないジョブに適しています。

設定方法の違い

cronの設定はcrontabコマンドを使用して行います。各ユーザーが自分のcrontabファイルを持っており、そこにジョブを定義します。ジョブの実行スケジュールは分、時、日、月、曜日の5つのフィールドで指定します。

一方、anacronの設定はanacrontabファイルに記述します。anacrontabファイルはシステム全体で共通の設定ファイルです。ジョブの実行間隔は日単位で指定します。

したがって、cronは詳細なスケジュール設定が可能ですが、anacronは日単位の設定しかできません。ただし、anacronの設定はシンプルで理解しやすいというメリットがあります。

適した用途の違い

cronはサーバーなどの常時稼働しているシステムに適しています。Webサーバーのログローテーションや、データベースのバックアップなど、決まった時刻に確実に実行する必要があるジョブに使用されます。

一方、anacronはパソコンなどの間欠的に稼働するシステムに適しています。システムが停止している間に実行されなかったジョブを、起動時にまとめて実行することができます。

したがって、cronは24時間365日稼働しているシステムに、anacronは間欠的に稼働するシステムに適したツールと言えます。ただし、両者を併用することも可能です。

※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。

「コンピュータ」に関するコラム一覧「コンピュータ」に関するニュース一覧
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。