crontab(5) FreeBSD 一般コマンドマニュアル

crontab

前のページ 上に戻る 次のページ

crontab


     という一般的な形式の cron(8) デーモンへの複数の指示が含まれています。各々
     ユーザは各自所有の crontab を持ち、crontab に書かれたコマンドはその
     crontab を所有するユーザとして実行されることになります。UUCP と News は通
     常それ自身所有の crontab を持ち、cron コマンドの一部として su(1) を実際に
     実行させる必要のないようにしています。

     空行と、先頭の空白およびタブは無視されます。最初の非空白文字がポンド記号
     (#) である行は注釈行であり、無視されます。注釈は cron コマンドと同じ行に
     あってはいけません。なぜなら、注釈自身がコマンドの一部とみなされるからで
     す。同様に、注釈は環境変数を設定する行と同じ行にあってはいけません。

     crontab の中で有効なのは環境変数の設定かまたは cron コマンドのどちらかで
     す。環境変数の設定は次のような形で行います。

         name = value
     ここで等号 (=) の周囲の空白は有っても良いですが、 value の中で = に引き続
     くスペースでない部分だけが name に割当てられる値となります。 value 文字列
     はクォート (シングルクォートまたはダブルクォートですがどちらかに統一しま
     す) で囲うこともでき、そのときには = に続くブランクや末尾のブランクを含む
     ことができます。 name 文字列もクォート (シングルクォートまたはダブルクォ
     ートですがどちらかに統一します) で囲うこともでき、前置、後置および内部の
     空白を保ちます。

     いくつかの環境変数は自動的に cron(8) デーモンによって設定されます。 SHELL
     は /bin/sh に設定され、 LOGNAME と HOME はその crontab の所有者の
     /etc/passwd 行を元に設定されます。 HOME と SHELL は、crontab ファイル中で
     設定することで上書きできますが、 LOGNAME はできません。

     (別注: LOGNAME 変数は BSD システム上では USER と呼ばれることがあります。
     このようなシステム上では USER も設定されます。)

     LOGNAME, HOME, SHELL に加え、 ``この'' crontab で実行したコマンドの実行結
     果をメールで送る理由がある場合、 cron(8) は MAILTO を見ます。 MAILTO が定
     義されていて (かつ空でない) とき、そこで指定された名前のユーザへメールが
     送られます。 MAILTO が定義されているが空のとき (MAILTO="")、メールは送ら
     れません。その他の場合にはメールは crontab の所有者に送られます。 cron イ
     ンストール時に、メーラとして /usr/lib/sendmail ではなく /bin/mail を使う
     場合、このオプションは有用です -- /bin/mail はエリアスを行いません
     し、UUCP は通常自分宛のメールを読みません。

     cron コマンドのフォーマットはほとんど V7 標準であり、多くの上位互換拡張を
     持っています。各行は 5 つの時間と日付の欄、システム crontab ファイルの場
     合は続いてユーザ名 (``:<グループ>'' および ``/<ログインクラス>'' の添字が
     付くこともあります)、その後にコマンドが続きます。分、時間、月の欄と現在の
     時刻が一致し、 かつ 2 つの日付欄 (月における日または曜日) のうちの少なく
     とも 1 つと現在の時刻が一致したとき (下記の ``注'' 参照) に、コマンドは
     cron(8) により実行されます。 cron(8) は 1 分ごとに cron エントリを調べま
     す。時間と日付の欄は次のとおりです。

                欄                  許される値
           ------------   ------------------------------------------------
                分       0-59

     間隔値は領域指定と共に用いることができます。領域指定に続けて ``/<数>'' を
     指定すると、その領域を通じてその数の値だけ飛ばす値になります。たとえば
     ``0-23/2'' は時間の欄で用いられると、2 時間おきにコマンドを実行することに
     なります (別の方法で V7 標準で表せば ``0,2,4,6,8,10,12,14,16,18,20,22''
     となります)。間隔指定はアスタリスクの後で付けても構いません。たとえば ``2
     時間おきに全て'' ということをしたいなら ``*/2'' とするだけです。

     ``月'' および  ``曜日'' の指定には、名前を使用することができます。曜日と
     月の指定には、最初の 3 文字を使ってください (この場合、大文字・小文字の区
     別はありません)。名前による領域指定やリスト指定はできません。

     ``6 番目'' の欄 (行の残りの部分) には実行したいコマンドを指定します。行の
     中のコマンド部全体、これは改行または % 文字までですが、は /bin/sh かまた
     はその cron ファイルの SHELL 変数で指定されたシェルによって実行されます。
     コマンド内のパーセント記号 (%) はバックスラッシュ (\) でエスケープされな
     い限り改行文字に変換され、その最初の % 以降の全てのデータはそのコマンドの
     標準入力となります。

     注: コマンド実行の日付は 2 つの欄 -- 1 ヶ月中の日 および曜日 -- で指定で
     きます。両方の欄が領域限定されている (すなわち * でない ) 場合、コマンド
     は どちらかの欄が現在の時刻と一致するときに実行されます。たとえば ``30 4
     1,15 * 5'' は各月の 1 日および 15 日に加えて全ての金曜日において、午前
     4:30 にコマンドを実行させます。

     最初の 5 個の欄の代りに、 8 種類の特殊文字列のうちのいずれかが登場しても
     良いです:

           文字列          意味
           ------          -------
           @reboot         起動時に 1 回実行。
           @yearly         年に 1 回実行、すなわち "0 0 1 1 *"。
           @annually       (@yearly と同じ)
           @monthly        月に 1 回実行、すなわち "0 0 1 * *"。
           @weekly         週に 1 回実行、すなわち "0 0 * * 0"。
           @daily          日に 1 回実行、すなわち "0 0 * * *"。
           @midnight       (@daily と同じ)
           @hourly         時間に 1 回実行、すなわち "0 * * * *"。


cron ファイルの例

     # 既定設定を cron でオーバライドし、コマンドの実行に /bin/sh を使用
     SHELL=/bin/sh
     # これが誰の crontab であっても、全ての出力は `paul' にメールする
     MAILTO=paul
     #
     # 毎日 深夜 0 時 5 分 に実行する
     5 0 * * *       $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
     # 毎月の最初の日の PM 2:15 に実行する -- 出力結果は paul にメールされる
     15 14 1 * *     $HOME/bin/monthly
     # ウィークディの PM 10 時に実行して Joe をうるさがらせる
     0 22 * * 1-5    mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
     23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am ..., everyday"

     月の名前や曜日の名前は、名前で指定できます。

     環境変数は crontab の中で指定できます。 BSD や ATT では 子プロセスに渡さ
     れた環境変数は基本的に /etc/rc から渡された環境変数です。

     crontab 所有者へメールされる ( はできませんBSD ) コマンド出力結果は、
     crontab 所有者以外の人へメールしたり (SysV はできません)、この機能を停止
     して誰にもメールを送らなくできます (SysV はこれもできません) 。

     最初の 5 個の欄の場所に記述可能な `@' コマンドすべては、拡張です。


作者

     Paul Vixie <paul@vix.com>


バグ

     夏時間というものがある奇妙な 70 の国々のいずれかにいる場合、巻き戻しまた
     は早回しの期間へスケジュールされたジョブが影響を受けます。一般的には、こ
     の期間へジョブをスケジュールすることは良いことではありません。

     US タイムゾーンでは (IN, AZ, HI を除き)、時刻シフトは午前 2 時に起りま
     す。他の国では、 zdump(8) プログラムの冗長 (-v) オプションを使用して、時
     刻シフトがいつ起るのかを判定してください。

FreeBSD 4.4                    January 24, 1994                    FreeBSD 4.4

ABELNET VPSサービス