CRON(8)

名称
cron - 定期的にコマンドを実行するデーモン (Vixie Cron)

書式
cron [-j jitter] [-J rootjitter] [-s] [-o] [-x debugflag[,...]]

解説
cron ユーティリティは、通常は /etc/rc もしくは /etc/rc.local から起動されます。このコマンドは実行するとすぐに返ってくるので、起動時に `&' をつける必要はありません。

cron ユーティリティは、 /var/cron/tabs ディレクトリの下から /etc/passwd 内のアカウント名と同じ名前の crontab ファイルを探し、見つかったファイルを メモリに読み込みます。 cron ユーティリティは、別のフォーマットの /etc/crontab (crontab(5) を参照してください) も調べます。 このあと、 cron ユーティリティは 1 分おきに目覚めて 読み込んでいるすべての crontab ファイルを調べ、各コマンドをその時刻に 実行させるべきかどうかを調べます。 コマンドを実行する場合には、出力がメールで crontab ファイルの所有者 (もしくは crontab ファイル内の環境変数 MAILTO で指定されたユーザ) に送られます。

さらに、 cron は 1 分おきにスプールディレクトリの最終更新時刻 (/etc/crontab の最終更新時刻も ) が変わっているかどうかを調べます。 もし変化があれば、 cron は crontab ファイルすべての最終更新時刻を調べ、 変更のあったものを読み直します。このため、 crontab ファイルを変更したときに cron をリスタートさせる必要はありません。 crontab(1) コマンドが crontab ファイルを変更したときにスプールディレクトリの最終更新時刻も更新されることに 注意して下さい。

使用可能なオプションは次の通りです:

-j jitter
    時間変動を有効にします。 コマンドを実行する前に、 cron は 0 から jitter の範囲のランダムな秒数だけスリープします。 これはスーパユーザのジョブには影響しません (-J を参照して下さい)。 jitter の値は 0 以上、60 以下でなければなりません。 デフォルトは 0 で、その場合、実質的に時間変動は無効になります。

    このオプションは、例えば、各時間の最初の分の始めなど、 多くのジョブが一度に開始する瞬間にシステム負荷が急激に増えるのを なだらかにするのに役立つでしょう。

-J rootjitter
    スーパユーザのジョブに対して時間変動を有効にします。 スーパユーザが実行するジョブにだけ影響する点を除けば、 -j と同じです。

-s  ローカルタイムゾーンの GMT との差が変わる場合を、特別に扱います。 例えば、標準時と夏時間との間での移行がこれに該当します。

    GMT との差が変わる期間でも、ジョブは直観通り実行されます。 すなわち、 無くなる期間 (例えば標準時から夏時間への移行) か 繰り返される期間 (例えばその逆の移行) にジョブが該当する場合、 次の 2 つの方法のいずれかで扱われます:

    第 1 の場合は、 無くなるまたは繰り返される期間と重なる期間内にある、毎時実行の ジョブについてのものです。 言い換えれば、GMT との差の変更直前の 1 時間以内 にそのジョブが実行されていた場合 (かつ cron が再起動されず、 crontab(5) がその後変更されない場合) か、 変更後の 1 時間に実行されていたであろう場合です。 これらは、いつも通りに動作します。 すなわち、無くなる時間を飛ばしますし、増えた時間にも実行されます。

    第 2 の場合は、より低い頻度で実行されるジョブについてのものです。 それらは、正確に 1 度だけ実行されます。 飛ばされたり 2 度実行されたりしません (ただし、cron が再起動されたり、ユーザの crontab(5) が期間中に変更される場合は例外です)。 GMT との差の変更のため、ある期間が無くなってしまう場合、 古いタイムゾーンにおいて実行されたであろう時刻と絶対的に同じ時刻において、 そのようなジョブは実行されます。 例えば、ちょうど 1 時間が無くなる場合、 ジョブが実行される時点は、 次の 1 時間の中で、 crontab(5) で指定される最初の分になります。

-o  ローカルタイムゾーンの GMT との差が変わる場合を、特別に扱いません。 古い (デフォルトの) 動作と互換です。 -o と -s の両方のオプションが指定された場合、最後に指定されたオプションが有効です。

-x debugflag[,...]
    標準出力へのデバッグ情報の書き込みを有効にします。 次に示す 1 個以上の debugflag を、コンマで区切って、指定することが必要です:

    bit 現在使用されていません。
    ext 他のデバッグフラグをより冗長にします。
    load
        crontab ファイルを読み取る時に冗長になります。
    misc
        様々な 1 回限りのイベントに関して冗長になります。
    pars
        個々の crontab 行の構文解析に関して冗長になります。
    proc
        プロセスの状態に関して、そのすべての子孫の状態も含めて、冗長になります。
    sch スケジュールアルゴリズムを繰り返す時に冗長になります。
    test
        実行を通じてトレースしますが、実際の動作は何も行いません。

関連項目
crontab(1), crontab(5)

作者
Paul Vixie <paul@vix.com>