crontab - 定期的なバックグラウンド・ジョブをスケジュールする

形式

crontab [–e|–l|–r] [–u user] [file]

説明

crontab は、crontab の項目を作成したり変更したりします。 crontab はシステムの持つ機能の 1 つで、これは自動的に定期的スケジュールで一連のコマンドを実行します。例えば、毎晩真夜中に、または週に一度システムが忙しくないときに、あるジョブを実行するよう crontab 項目をセットアップすることができます。このジョブは、定期的な保守のための雑用、例えばファイルのバックアップや 不要になった作業ファイルの除去を実行することもできます。

crontab 項目をセットアップするには、以下を入力します。
crontab file
file 引数を省略すると 、crontab は標準入力 (stdin) からの入力をとります。要件: このモードでは、完全な crontab ファイルをユーザーが用意しなければなりません。これが、他の既存の crontab 項目に置き換わります。crontab をオプションなしに出すとき は、end-of-file 文字を入力しないでください。もしそうすると、空の crontab ファイルで 終了することになります。代わりに INTERRUPT を使ってください。
入力は、ブランクで区切られた、6 つのフィールドからなります。すべてのブランク行、および「#」を最初の非ブランク文字として 含むすべての入力は無視されます。最初の 5 個が以下の形式で日時を示します。
  • 分、0 から 59 までの数で表される
  • 時間、0 から 23 までの数で表される
  • 日付、1 から 31 までの数で表される
  • 月、1 から 12 までの数で表される
  • 曜日、0 から 6 までの数で表される (0 が日曜を示す)
要件: 常に、システム・デフォルトの時間帯を使用してください。システム管理者が、どの時間帯であるかを知っています。cron デーモンは、crontab が起動されたときは、TZ 環境変数の値を使用しません。
フィールドのどれにでもアスタリスク (*) が使えます。これはすべての可能な値を意味し ます。 例えば、日付に * を使えば、ジョブはその月には毎日実行されます。またフィールドには、コンマで分離された一連の数字や、ある範囲の数字 (最初の数字の次、2 番目の数字の前に負符号 を入れる) を使用することもできます。日付と曜日の両方に特定の日を指定すると、2 つの日は OR 条件で扱われます。 以下にいくつかの例を挙げます。
     0 0 * * *          -- Midnight every day
     0 0 * * 1-5        -- Midnight every weekday
     0 0 1,15 * *       -- Midnight on 1st and 15th of month
     0 0 1 * 5          -- Midnight on 1st of month and every Friday

crontab 項目の 6 番目のフィールドは、シェルが指定された時間に実行するストリングです。シェルはこのストリングを実行するときに、HOME、 LOGNAME、PATH、 および SHELL 環境変数をデフォルト 値に設定します。

crontab 項目のこのストリングにパーセント文字 % があると、シェルはこれを改行文字と解釈して、ストリングをいくつかの論理行に分割します。最初の論理行 (つまり最初の % まで) は 実行するべきコマンドと解釈されます。あとに続く論理行はコマンドに対する標準入力として 使用されます。ファイル内の実際の行 (論理行ではない) がブランクであるか # で 始まっている場合は、シェルはその行を無視し (コメントとみなし) ます。

crontab 項目にあるコマンドの出力を得るためには、標準出力 (stdout) と標準エラー (stderr) を ファイルにリダイレクトしてください。 これを行わないと、システムはコマンドからの出力をユーザーに送ります。

atbatch、および crontab は、 ジョブを cron にサブミットします。それらのジョブのデータには 2 バイト文字が含まれている可能性があります。 ジョブが実行されるとき、ジョブにあるデータは cron が使用する ロケールで解釈されます。cron は POSIX ロケールで開始することが強く推奨されているためジョブ内の 2 バイト文字は正しく解釈されない可能性があります。ジョブで setlocale() を呼び出すと、この問題を回避することが できます。

オプション

–e
crontab 項目を編集するためのオプションです。crontab は、項目を編集するためのエディターを起動します。 editor 環境変数が定義されている場合は、 crontab は、変数の値は使用されるエディターの名前であると想定します。 editor が定義されていない場合、crontabvi を使用します。

crontab 項目がなければ、crontab はブランクの項目をセットアップします。エディターを 終了するときは、crontab は編集された項目を新しい項目として使用します。

–l
現行の crontab 項目を stdout に表示します。
–r
現行の crontab 項目を除去します。
–u user
user の crontab 項目を使用します。指定されたユーザーは、 /usr/spool/cron/crontabs に crontab 項目を 作成したのと同じユーザー名でなければなりません。これには適切な権限が必要です。

指定できるのは、–e–l、または –r オプションの どれか 1 つです。

環境変数

crontab は、以下の環境変数を使用します。
EDITOR
–e オプションが起動するエディターを指定します。デフォルトの エディターは vi です。
HOME
crontab 項目のコマンドが実行されるとき、ユーザー ID の ホーム・ディレクトリーに設定されます (HOME の現行値であるとは かぎりません)。
LOGNAME
crontab 項目のコマンドが実行されるとき、ユーザー ID に設定されます。
PATH
crontab 項目のコマンドが実行されるとき、システム全体のデ フォルト値に設定されます。
TZ
時間計算には使用されません。cron デーモンは、しかし、cron が最初に開始したとき (通常はシステムが開始したとき) この変数を使用します。

ローカライズ

crontab は、以下のローカライズ環境変数を使用します。
  • LANG
  • LC_ALL
  • LC_CTYPE
  • LC_MESSAGES
  • NLSPATH

詳しくは、ローカライズを参照してください。

終了値

0
正常終了
1
コマンドがなにかの理由で失敗したとき戻される。この場合、crontab は crontab 項目を変更しません。

移植性

POSIX.2 ユーザー移植性拡張, X/Open 移植性ガイド, UNIX システム.

–u オプションは、POSIX 標準の拡張です。

関連情報

atbatchbgcron

ファイル・フォーマットqueuedef ファイル・フォーマットも参照してください。