Solaris のシステム管理 (上級編)

システムタスクを自動的に実行する方法

多数のシステムタスクを自動的に実行するよう設定できます。これらのタスクの中には、定期的な実行が必要になる作業があります。また、夜間や週末などの就業時間外に 1 回だけ実行する作業もあります。

この節では、crontabat という 2 つのコマンドについて概説します。これらのコマンドを使用すると、定型作業をスケジュールして、自動的に実行することができます。crontab コマンドは、繰り返し実行するコマンドをスケジュールします。at コマンドは、1 回だけ実行するタスクをスケジュールします。

次の表は、crontabat、およびこれらのコマンドの使用を制御できるファイルをまとめたものです。

表 8–1 コマンドの要約: システムタスクのスケジューリング

コマンド 

スケジューリングの対象 

ファイルの格納場所 

制御ファイル 

crontab

一定間隔で実行する複数のシステムタスク 

/var/spool/cron/crontabs

/etc/cron.d/cron.allow および /etc/cron.d/cron.deny

at

1 つのシステムタスク  

/var/spool/cron/atjobs

/etc/cron.d/at.deny

Solaris 管理コンソールのスケジュールされたジョブツールを使用して、定型作業をスケジュールすることもできます。Solaris 管理コンソールの使用と起動の方法については、『Solaris のシステム管理 (基本編)』の第 2 章「Solaris 管理コンソールの操作 (手順)」を参照してください。

繰り返されるジョブのスケジューリング (crontab)

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

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

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

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

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

crontab ジョブをスケジュールする手順については、crontab ファイルを作成または編集する方法」を参照してください。

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

at コマンドを使用すると、1 つのジョブをあとで実行するようにスケジュールできます。ジョブは 1 つのコマンドやスクリプトで構成されます。

crontab と同様に、at コマンドを使用すると定型作業の自動実行をスケジュールできます。しかし、crontab ファイルとは異なり、 at ファイルはタスクを 1 回だけ実行します。その後はディレクトリから削除されます。したがって、at コマンドが役立つのは、単純なコマンドまたはスクリプトを実行して、別ファイルに書き出した出力をあとから調べるような場合です。

at ジョブの実行を指定するには、コマンドを入力してから、at コマンド構文に従ってオプションで実行時刻を指定してください。at ジョブの実行方法については、at コマンドの説明」を参照してください。

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

cron デーモンは、起動時に at ジョブをチェックし、新しく実行されるジョブを待機します。cron デーモンが at ジョブを実行すると、atjobs ディレクトリから at ジョブのファイルが削除されます。詳細は、at(1) のマニュアルページを参照してください。

at ジョブをスケジュールする手順については、at ジョブを作成する方法」を参照してください。