Solaris のシステム管理 (第 2 巻)

定型作業の自動実行

多くの定型的なシステムイベントは、自動的に実行されるように設定できます。それらの作業のなかには、定期的に実行する必要があるものがあります。その他の作業は、1 回しか実行する必要がありません。大部分は、夜間や週末などの就業時間外に実行できます。

この節では、crontabat という 2 つのコマンドについて説明します。これらのコマンドでは、ピーク時間帯を避けて、または固定スケジュールに従って繰り返し実行して、定型的なコマンドが自動的に実行されるようにスケジュールすることができます。crontab は繰り返し実行されるコマンドをスケジュールし、at は 1 回実行されるコマンドをスケジュールします。

反復ジョブのスケジューリング (crontab)

定型的なシステム管理用コマンドは、crontab コマンドを使用して、毎日、毎週、または毎月それぞれ 1 回ずつ実行するようにスケジュールできます。

毎日 1 回の crontab によるシステム管理作業には次のようなものがあります。

毎週 1 回の crontab システム管理作業には次のようなものがあります。

毎月 1 回の crontab システム管理作業には次のようなものがあります。

上記に加えて、連絡事項の通知の転送やバックアップファイルの削除や、さらに他の定型的システム作業を実行するように crontab コマンドをスケジュールすることもできます。

crontab ジョブのスケジューリングの詳細については、第 30 章「システムイベントのスケジュール設定」を参照してください。

1 つのジョブのスケジューリング (at)

特定の 1 つのジョブを後で実行するように at コマンドを使用してスケジュールできます。

crontab と同様、at でも定型的コマンドの自動実行をスケジュールできます。しかし、crontab ファイルとは異なって、at ファイルはそれぞれのコマンドを 1 回実行して、その後はディレクトリから削除されてしまいます。したがって、at はそれぞれ 1 つのコマンドまたはスクリプトを実行して、後で調べられるようにそれらの出力を別々のファイルに送るのが最も効果的です。

at ジョブの実行を依頼するには、単にコマンド構文に従って at オプションで実行時刻を指定してください。at ジョブの実行依頼の詳細は、at コマンドの説明」を参照してください。

at コマンドは、入力されたコマンドまたはスクリプトを、現在の環境変数のコピーと一緒に /var/spool/cron/atjobs ディレクトリに格納します。作成された at ジョブには、ファイル名として、at 待ち行列内での位置を指定する長い数値と .a 拡張子からなる、たとえば 793962000.a のような文字列が与えられます。

cron デーモンは、通常 15 分間隔で定期的に atrun プログラムを実行します。atrun は次に、それぞれのスケジュールされた時刻に各 at ジョブを実行します。at ジョブが実行し終わると、それぞれのファイルが atjobs ディレクトリから削除されます。

at ジョブのスケジューリングの詳細については、第 27 章「システム情報の確認と変更」を参照してください。