多くの定型的なシステムイベントは、自動的に実行されるように設定できます。それらの作業のなかには、定期的に実行する必要があるものがあります。その他の作業は、1 回しか実行する必要がありません。大部分は、夜間や週末などの就業時間外に実行できます。
この節では、crontab と at という 2 つのコマンドについて説明します。これらのコマンドでは、ピーク時間帯を避けて、または固定スケジュールに従って繰り返し実行して、定型的なコマンドが自動的に実行されるようにスケジュールすることができます。crontab は繰り返し実行されるコマンドをスケジュールし、at は 1 回実行されるコマンドをスケジュールします。
定型的なシステム管理用コマンドは、crontab コマンドを使用して、毎日、毎週、または毎月それぞれ 1 回ずつ実行するようにスケジュールすることができます。
毎日 1 回の crontab によるシステム管理作業には次のようなものがあります。
作成後、数日以上経過した不要なファイルを一時ディレクトリから削除する
アカウンティング要約コマンドを実行する
df および ps コマンドを使用してシステムのスナップショットを取る
日常のセキュリティ監視を実行する
システムのバックアップを実行する
毎週 1 回の crontab システム管理作業には次のようなものがあります。
毎月 1 回の crontab システム管理作業には次のようなものがあります。
当月使用されなかったファイルのリストを表示する
月次アカウンティングレポートを生成する
上記に加えて、連絡事項の通知の転送やバックアップファイルの削除や、さらに他の定型的システム作業を実行するように crontab コマンドをスケジュールすることもできます。
特定の 1 つのジョブを後で実行するように at コマンドを使用してスケジュールできます。
crontab と同様、at でも定型的コマンドの自動実行をスケジュールできます。しかし、crontab ファイルとは異なって、at ファイルはそれぞれのコマンドを 1 回実行して、その後はディレクトリから削除されてしまいます。したがって、at はそれぞれ 1 つのコマンドまたはスクリプトを実行して、後で調べられるようにそれらの出力を別々のファイルに送るのが最も効果的です。
at ジョブの実行を依頼するには、単にコマンド構文に従って at オプションで実行時刻を指定してください。at ジョブの実行依頼の詳細については、「at コマンドの説明」を参照してください。
at コマンドは、入力されたコマンドまたはスクリプトを、現在の環境変数のコピーと一緒に /usr/spool/cron/atjobs か /var/spool/cron/atjobs に格納します。作成された at ジョブには、ファイル名として、at 待ち行列内での位置を指定する長い数値と .a 拡張子からなる、たとえば 793962000.a のような文字列が与えられます。
cron デーモンは、通常 15 分間隔で定期的に atrun プログラムを実行します。atrun は次に、それぞれのスケジュールされた時刻に各 at ジョブを実行します。at ジョブが実行し終わると、それぞれのファイルが atjobs ディレクトリから削除されます。