anacron

 Linuxシステム管理において、定期的なタスクの自動実行は重要な役割を果たします。通常、cronを使用してジョブスケジューリングを行いますが、cronには一つの制約があります。それは、ジョブの実行時間にシステムがシャットダウンしていると、そのジョブが実行されないということです。この問題を解決するために利用されるのが「anacron」です。

anacronの概要

 Anacronは、cronによるジョブスケジューリングを補完するツールです。通常、crontabファイルに記載されているジョブは指定された時間にシステムがシャットダウンしていると実行されません。Anacronは、未実行のジョブがあった場合にシステム起動後にそれらを実行します。Anacronの設定は/etc/anacrontabファイルに記載されており、このファイルはrootユーザーのみが確認および編集できます。

anacrontabファイルの内容を表示

rootユーザーに切り替えて、/etc/anacrontabファイルの内容を表示します。

user01@ubuntu-vm:~$ su -
パスワード: 
root@ubuntu-vm:~# cat /etc/anacrontab 
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
HOME=/root
LOGNAME=root

# These replace cron's entries
1	5	cron.daily	run-parts --report /etc/cron.daily
7	10	cron.weekly	run-parts --report /etc/cron.weekly
@monthly	15	cron.monthly	run-parts --report /etc/cron.monthly

anacrontabファイルの内容

以下は、/etc/anacrontabファイルの典型的な内容です。

# /etc/anacrontab: configuration file for anacron

# These replace cron's entries
1	5	cron.daily	run-parts --report /etc/cron.daily
7	10	cron.weekly	run-parts --report /etc/cron.weekly
@monthly	15	cron.monthly	run-parts --report /etc/cron.monthly
行番号項目説明
1行目/etc/cron.daily1日ごとに実行するジョブを格納するディレクトリ
2行目/etc/cron.weekly1週間ごとに実行するジョブを格納するディレクトリ
3行目/etc/cron.monthly1か月ごとに実行するジョブを格納するディレクトリ
anacrontabファイルの内容

/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthlyディレクトリの役割

 これらのディレクトリは、定期的に実行したいプログラムを配置する場所です。プログラムを適切なディレクトリに配置することで、指定された周期で自動的に実行されます。

ディレクトリ説明
/etc/cron.daily毎日実行するジョブを格納するディレクトリ
/etc/cron.weekly毎週実行するジョブを格納するディレクトリ
/etc/cron.monthly毎月実行するジョブを格納するディレクトリ
ディレクトリの役割

cronとanacronの違い

項目cronanacron
遅延実行サーバの電源が落ちている間はタスクを実行しない。サーバの電源が落ちても、後でタスクを遅れて実行する。
スケジュール周期の最短単位1分毎、1時間毎、1日毎など細かい指定ができる。1日単位の指定しかできない。
cronとanacronの違い

まとめ

 Anacronは、cronの補完ツールとして、システムがシャットダウンしている間に実行されなかったジョブをシステム起動後に実行する機能を提供します。これにより、定期的なタスクの実行が確実に行われ、システム管理が容易になります。Anacronの設定は/etc/anacrontabファイルに記載されており、このファイルを編集することで、ジョブの実行タイミングや内容を管理します。また、cronとanacronの違いを理解することで、それぞれのツールの適切な使用方法を選択することができます。