anacronによるシステムジョブの実行

今回は、より詳細にanacronについて解説します。【連載コラム:Linuxシステム管理標準教科書を読む(20)】

最終更新日:2025年02月05日

Linuxの基本的なスキルを習得したら、Linuxサーバーをシステムとして長期に運用管理していくためのスキルを身につけるのはいかがでしょうか。このコラムでは、「Linuxシステム管理標準教科書」の全体調整を担当した筆者が改めて大切なポイントを解説していきます。

教科書では基本であるcronについての解説に紙幅を多めに割いていますが、実際のシステムにおいては特別なスケジュールジョブ実行がない限り、anacronにより日次、週次、月次でジョブを実行する形を取っています。今回はより詳細にanacronについて解説します。


anacronの設定ファイル

anacronの設定ファイルは/etc/anacrontabです。このファイルは以下のような内容になっています。

$ 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

「RANDOM_DELAY=45」の設定は、各ジョブの基準遅延時間に足して使用します。たとえば1日1回の実行であれば、ジョブ設定の2番目の数字である5分にランダムで最大45分が足されてジョブが開始されます。もし、同じ仮想マシンホスト上に配置された仮想マシンがanacronのジョブを実行して、実行が重複することで性能が劣化するようなことがあれば、この基準遅延時間を各仮想マシンで変えるなどして実行タイミングを分散させる必要があるでしょう。

あるいは、START_HOURS_RANGEの幅を調整することで、実行可能時間をずらすこともできます。ただ、仮想マシンの数が多いと設定に手間がかかるので、anacronに行わせるジョブ自体の負荷を調整することも検討すべきでしょう。

まとめ

anacronは、定期的に実行したいシステム管理のジョブを実行させるには非常に便利な機能です。システムが停止していた場合にも、呼び出し自体は1時間に1回試行されるので、再起動後比較的早いタイミングで実行されます。うまく活用して、管理の自動化を図りましょう。


筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。

<Linuxシステム管理標準教科書とは>

Linuxシステム管理標準教科書」(システム管理教科書)は2015年4月にリリースされた標準教科書シリーズの1冊です。Linuxシステムの運用管理という観点で書かれており、システム管理者という業務において知っておかなければならない基本的なトピックが解説されています。「Linux標準教科書」「Linuxサーバー構築標準教科書」でコマンド操作やサーバー構築の基本を学んだら、このシステム管理教科書を読んで、単にLinuxを使うのではなく、システムとして長期的に管理運用していくためのスキルを身につけてください。

バックナンバー

第19回:anacronの呼び出し
第18回:カーネルとデバイスの確認
第17回:カーネルの起動
第16回:新しいディストリビューションでのGRUBの取り扱い
第15回:DHCPについて

ページトップへ