システム設定ファイルを知ろう〜/etc/crontab〜

 自動的に特定のプログラムを実行させることができるのがcronが持つ機能。デーモンとしてcrondが常駐し,時間ごとに設定内容を管理している。このcronは,各ユーザーごとに設定することができるが,あらかじめシステム側でスケジュールされているものもある。その大元となる設定ファイルが「/etc/crontab」だ。

 標準設定のファイルでは次のように定義されている(Red Hat Linux 7.2の場合)。

$ cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg

 上記に挙げるように「/etc/cron.hourly」,「/etc/daily」,「/etc/weekly」,「/etc/monthly」ディレクトリ下にはシステム動作に密接なスクリプトが用意されている。それぞれ毎時,毎日,毎週,毎月ごとのスケジュールで実行されるのだ。

 一般ユーザー権限であれば「crontab -e」を実行してcron設定をするが,システムに関わる制御であれば,この「/etc/crontab」やその中で定義される「/etc/cron.*/」ディレクトリ下に設定を記述するのが一般的だ。

 設定を行うと,crondが1分おきに/etc/crontabの内容をチェックするためデーモンを再起動する必要はない。