システム管理者であれば、日常の定期的な作業を自動化して、管理タスクの手間を可能な限り省きたいと考えるでしょう。Turbolinux 11 Server には、同じ処理をスケジューリングするための機能として cron が実装されています。cron のデーモンである crond は、1 分毎に設定ファイルを参照し、設定されているジョブを定期的に実行します。なお、cron にはいくつかの亜種が存在し、オペレーティングシステムにより実装している種類が異なります。Turbolinux 11 Server が採用している cron は Vixie Cron と呼ばれているもので、亜種の代表的なものの 1 つです。この章では、cron の設定ファイルである /etc/crontab の記述方法や crontab コマンドの使用方法について解説します。
はじめに、crond デーモンが起動していることを確認しておきます。通常、crond はデフォルトで起動しています。
# /etc/init.d/crond status crond (pid 954) is running... |
running... と表示されれば crond は起動しています。起動していない場合は、以下のコマンドを実行して起動します。
# /etc/init.d/crond start |
また、Turbolinux 11 Server の起動時に crond が起動するように chkconfig コマンドを実行しておきます。
# chkconfig crond on |
cron の設定ファイルには、システムのジョブを実行するデフォルトの設定ファイルと各ユーザーのジョブを実行する設定ファイルがあります。ここでは、システムがデフォルトで提供している設定ファイルである /etc/crontab について解説します。各ユーザーの設定ファイルについては、項29.2 で解説します。
Turbolinux 11 Server の /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 03 */6 * * * root run-parts /etc/cron.quarter-daily 22 4 * * 0 root run-parts /etc/cron.weekly 42 4 1 * * root run-parts /etc/cron.monthly |
最初の 4 行は、環境変数の指定です。各変数の意味を以下に示します。
7 行目以降は、特定の時刻に起動するプログラムがあらかじめ設定されています。設定項目は、左から順に以下のようになっています。なお、run-parts は、パラメータに指定したディレクトリにあるコマンドやスクリプトを実行するスクリプトです。
表 29-2.
| フィールドの位置(左から) | フィールドの意味 | 指定方法 |
|---|---|---|
| 1 | 分 | 0 から 59(例: */15) |
| 2 | 時 | 0 から 23(例: 0-23) |
| 3 | 日 | 0 から 31(例: 1-20) |
| 4 | 月 | 1 から 12 または jan から dec(例: 1,6,12) |
| 5 | 曜日 | 0 から 6 または sun から sat(例: 0-6) |
| 6 | 実行するユーザー | |
| 7 | コマンド行 |
日時などの指定には整数間にカンマ(,)やハイフン(-)を使用できます。カンマは続けて指定する場合に使用でき、ハイフンは範囲を指定できます。例えば、8-11 は、8、9、10、11 を表します。0-4,8-12 のようにハイフンとカンマの併用もできます。また、アスタリスク(*)も指定できます。アスタリスクは、すべてにマッチすることを意味します。例えば、時フィールドで * を指定した場合は毎時、日フィールドで指定した場合は毎日を意味します。
また、時フィールドで */2 のようにスラッシュ(/)を使用すると、2 時間おきとなります。月フィールドで 1-12/3 と指定した場合は、 1 月が最初の月でそのあとは、4 月、7 月、10 月となります。
したがって、Turbolinux 11 Server の /etc/crontab は標準で以下のように設定されていることが分かります。
毎時 1 分に /etc/cron.hourly 以下のスクリプトを実行
毎日午前 4 時 2分に /etc/cron.daily 以下のスクリプトを実行
毎日 6 時間おきに /etc/cron.quarter-daily 以下のスクリプトを実行
毎週日曜日 午前 4 時 22 分に /etc/cron.weekly 以下のスクリプトを実行
毎月 1 日 午前 4 時 42 分に /etc/cron.monthly 以下のスクリプトを実行
![]() | Turbolinux 11 Server がどのようなジョブを定期的に実行しているかは、各ディレクトリのスクリプトを参照してください。 |