EN JA
CRON(8)
CRON(8) FreeBSD System Manager's Manual CRON(8)

名称

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

書式

cron [ -j jitter][ -J rootjitter][ -m mailto][ -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 ファイルからコマンドを実行する前に、 cron は、 pam(3) でアカウントの状態をチェックして、例えば、ロックされているか、または、期限が切れていて、アカウントが利用可能でないなら、コマンドをスキップします。 /etc/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 と同じです。
-m mailto
cron メールのためのデフォルト受取人を上書きします。明白に設定される MAILTO のない各 crontab(5) は、 mailto メールボックスにメールを送信します。送信メールは、通常、 '' または "" とシェルで指定される、 mailto がヌル文字列に設定されるなら、デフォルトによって無効にされます。
-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
実行を通じてトレースしますが、実際の動作は何も行いません。

関連ファイル

/etc/crontab
システム crontab ファイル
/etc/pam.d/cron
cron のための pam.conf(5) 設定ファイル
/var/cron/tabs
個人的な crontab ファイルのためのディレクトリ

作者

Paul Vixie <paul@vix.com>
June 29, 2008 FreeBSD