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.daily | 1日ごとに実行するジョブを格納するディレクトリ |
2行目 | /etc/cron.weekly | 1週間ごとに実行するジョブを格納するディレクトリ |
3行目 | /etc/cron.monthly | 1か月ごとに実行するジョブを格納するディレクトリ |
/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthlyディレクトリの役割
これらのディレクトリは、定期的に実行したいプログラムを配置する場所です。プログラムを適切なディレクトリに配置することで、指定された周期で自動的に実行されます。
ディレクトリ | 説明 |
---|---|
/etc/cron.daily | 毎日実行するジョブを格納するディレクトリ |
/etc/cron.weekly | 毎週実行するジョブを格納するディレクトリ |
/etc/cron.monthly | 毎月実行するジョブを格納するディレクトリ |
cronとanacronの違い
項目 | cron | anacron |
---|---|---|
遅延実行 | サーバの電源が落ちている間はタスクを実行しない。 | サーバの電源が落ちても、後でタスクを遅れて実行する。 |
スケジュール周期の最短単位 | 1分毎、1時間毎、1日毎など細かい指定ができる。 | 1日単位の指定しかできない。 |
まとめ
Anacronは、cronの補完ツールとして、システムがシャットダウンしている間に実行されなかったジョブをシステム起動後に実行する機能を提供します。これにより、定期的なタスクの実行が確実に行われ、システム管理が容易になります。Anacronの設定は/etc/anacrontab
ファイルに記載されており、このファイルを編集することで、ジョブの実行タイミングや内容を管理します。また、cronとanacronの違いを理解することで、それぞれのツールの適切な使用方法を選択することができます。