シェルスクリプトマガジン

第24回 定期的にジョブを実行する(cron)

システムに関連するジョブの自動実行

システムに関連するジョブの自動実行の設定は「/etc/crontab」ファイルおよび「/etc/cron.d」ディレクトリーの下にあるファイルに書き込まれています。/etc/crontabファイルの内容は、次の通りです。

/etc/crontabファイルおよび/etc/cron.dディレクトリーの下にあるファイルでは、ジョブを自動で実行する設定を次の書式で記述します。先に示したものと少し異なるので注意してください。

分 時 日 月 曜日 ユーザー名 コマンド

「ユーザー名」には、ジョブを実行するユーザーを指定できます。

/etc/crontabファイルには、毎日、毎週、毎月決められたときに実行するジョブをまとめて設定しています。一方、/etc/cron.dディレクトリーの下にあるファイルは、任意に日時、曜日に実行するジョブの設定が記述されています。

/etc/crontabファイルの末尾にある4行がジョブを自動実行する設定です。上から、毎時17分に「/etc/cron.hourly」ディレクトリーにあるスクリプトを、毎日6時25分に「/etc/cron.daily」ディレクトリーにあるスクリプトを、日曜日の6時47分に「/etc/cron.weekly」ディレクトリーにあるスクリプトを、毎月1日の6時52分に「/etc/cron.monthly」ディレクトリーにあるスクリプトを実行します。「run-parts」は指定したディレクトリー内のスクリプトやプログラムを実行するコマンドです。「test -x /usr/sbin/anacron ||」は、「/usr/sbin/anacron」ファイルが存在しないときに、その後ろに指定したコマンドを実行する処理を表しています。「anacron」は、cronと同じようにジョブを自動実行するためのプログラムです。システムに関連するものとして、どのようなジョブを実行しているかは、/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly内にあるファイルの中身を見ると分かります。