273 lines
8.5 KiB
Groff
273 lines
8.5 KiB
Groff
.\"/* Copyright 1988,1990,1993,1994 by Paul Vixie
|
|
.\" * All rights reserved
|
|
.\" *
|
|
.\" * Distribute freely, except: don't remove my name from the source or
|
|
.\" * documentation (don't take credit for my work), mark your changes (don't
|
|
.\" * get me blamed for your possible bugs), don't alter or remove this
|
|
.\" * notice. May be sold if buildable source is provided to buyer. No
|
|
.\" * warrantee of any kind, express or implied, is included with this
|
|
.\" * software; use at your own risk, responsibility for damages (if any) to
|
|
.\" * anyone resulting from the use of this software rests entirely with the
|
|
.\" * user.
|
|
.\" *
|
|
.\" * Send bug reports, bug fixes, enhancements, requests, flames, etc., and
|
|
.\" * I'll try to keep a version up to date. I can be reached as follows:
|
|
.\" * Paul Vixie <paul@vix.com> uunet!decwrl!vixie!paul
|
|
.\" */
|
|
.\"
|
|
.\" %FreeBSD: src/usr.sbin/cron/crontab/crontab.5,v 1.25 2004/07/02 23:12:40 ru Exp %
|
|
.\"
|
|
.\" $FreeBSD$
|
|
.\"
|
|
.\" WORD: day of the week 曜日
|
|
.Dd January 24, 1994
|
|
.Dt CRONTAB 5
|
|
.Os
|
|
.Sh 名称
|
|
.Nm crontab
|
|
.Nd cron を駆動するための一覧表
|
|
.Sh 解説
|
|
1 つの
|
|
.Nm
|
|
ファイルには ``この日のこの時間にこのコマンドを実行せよ''
|
|
という一般的な形式の
|
|
.Xr cron 8
|
|
デーモンへの複数の指示が含まれています。
|
|
各々ユーザは各自所有の crontab を持ち、crontab に書かれたコマンドはその
|
|
crontab を所有するユーザとして実行されることになります。UUCP と News は
|
|
通常それ自身所有の crontab を持ち、cron コマンドの一部として
|
|
.Xr su 1
|
|
を実際に実行させる必要のないようにしています。
|
|
.Pp
|
|
空行と、先頭の空白およびタブは無視されます。
|
|
最初の非空白文字がポンド記号 (#) である行は注釈行であり、無視されます。
|
|
注釈は cron コマンドと同じ行にあってはいけません。
|
|
なぜなら、注釈自身がコマンドの一部とみなされるからです。
|
|
同様に、注釈は環境変数を設定する行と同じ行にあって
|
|
はいけません。
|
|
.Pp
|
|
crontab の中で有効なのは環境変数の設定かまたは cron コマンドのどちらかです。
|
|
環境変数の設定は次のような形で行います。
|
|
.Bd -literal
|
|
name = value
|
|
.Ed
|
|
.Pp
|
|
ここで等号 (=) の周囲の空白は有っても良いですが、
|
|
.Em value
|
|
の中で = に引き続くスペースでない部分だけが
|
|
.Em name
|
|
に割当てられる値となります。
|
|
.Em value
|
|
文字列はクォート
|
|
(シングルクォートまたはダブルクォートですがどちらかに統一します)
|
|
で囲うこともでき、そのときには = に続くブランクや末尾のブランク
|
|
を含むことができます。
|
|
.Em name
|
|
文字列もクォート
|
|
(シングルクォートまたはダブルクォートですがどちらかに統一します)
|
|
で囲うこともでき、前置、後置および内部の空白を保ちます。
|
|
.Pp
|
|
いくつかの環境変数は自動的に
|
|
.Xr cron 8
|
|
デーモンによって設定されます。
|
|
.Ev SHELL
|
|
は
|
|
.Pa /bin/sh
|
|
に設定され、
|
|
.Ev LOGNAME
|
|
と
|
|
.Ev HOME
|
|
はその crontab の所有者の
|
|
.Pa /etc/passwd
|
|
行を元に設定されます。
|
|
.Ev HOME
|
|
と
|
|
.Ev SHELL
|
|
は、crontab ファイル中で設定することで上書きできますが、
|
|
.Ev LOGNAME
|
|
はできません。
|
|
.Pp
|
|
(別注:
|
|
.Ev LOGNAME
|
|
変数は
|
|
.Bx
|
|
システム上では
|
|
.Ev USER
|
|
と呼ばれることがあります。このようなシステム上では
|
|
.Ev USER
|
|
も設定されます。)
|
|
.Pp
|
|
.Ev LOGNAME ,
|
|
.Ev HOME ,
|
|
.Ev SHELL
|
|
に加え、
|
|
``この'' crontab で実行したコマンドの実行結果をメールで送る理由がある場合、
|
|
.Xr cron 8
|
|
は
|
|
.Ev MAILTO
|
|
を見ます。
|
|
.Ev MAILTO
|
|
が定義されていて (かつ空でない) とき、そこで指定された名前のユーザへメール
|
|
が送られます。
|
|
なお
|
|
.Ev MAILTO
|
|
に複数の受信者をコンマで区切って指定すると、複数の受信者へメールを送れます。
|
|
.Ev MAILTO
|
|
が定義されているが空のとき (MAILTO="")、メールは送られません。
|
|
その他の場合にはメールは crontab の所有者に送られます。
|
|
cron インストール時に、メーラとして
|
|
.Pa /usr/lib/sendmail
|
|
ではなく
|
|
.Pa /bin/mail
|
|
を使う場合、このオプションは有用です
|
|
--
|
|
.Pa /bin/mail
|
|
はエイリアスを行いませんし、UUCP は通常自分宛のメールを読みません。
|
|
.Pp
|
|
cron コマンドのフォーマットはほとんど V7 標準であり、多くの上位互換拡張を
|
|
持っています。各行は 5 つの時間と日付の欄、システム crontab
|
|
ファイルの場合は続いてユーザ名
|
|
(``:<グループ>'' および ``/<ログインクラス>'' の添字が付くこともあります)、
|
|
その後にコマンドが続きます。分、時間、月の欄と現在の時刻が一致し、
|
|
.Em かつ
|
|
2 つの日付欄 (月における日または曜日) のうちの少なくとも 1 つと
|
|
現在の時刻が一致したとき (下記の ``注'' 参照) に、コマンドは
|
|
.Xr cron 8
|
|
により実行されます。
|
|
.Xr cron 8
|
|
は 1 分ごとに cron エントリを調べます。時間と日付の欄は次のとおりです。
|
|
.Bd -literal -offset indent
|
|
欄 許される値
|
|
------------ ------------------------------------------------
|
|
分 0-59
|
|
時間 0-23
|
|
月における日 1-31
|
|
月 1-12 (または名前、下記参照)
|
|
曜日 0-7 (0 および 7 は日曜のこと。名前を用いてもよい)
|
|
.Ed
|
|
.Pp
|
|
欄はアスタリスク (*) でも良いですが、このときには常に "最初-最後" を表すこ
|
|
とになります。
|
|
.Pp
|
|
数値領域を指定できます。領域指定は、2 つの数をハイフンでつなげたものです。
|
|
指定された領域は、両端を含みます。
|
|
たとえば ``時間'' エントリの 8-11 は、
|
|
8, 9, 10, 11 時の実行を指定することになります。
|
|
.Pp
|
|
リスト指定もできます。リスト指定はコンマによって数 (または領域指定) をつな
|
|
げた 1 組のことです。例: ``1,2,5,9'', ``0-4,8-12''。
|
|
.Pp
|
|
間隔値は領域指定と共に用いることができます。領域指定に続けて
|
|
``/<数>'' を指定すると、その領域を通じてその数の値だけ飛ばす値になります。
|
|
たとえば ``0-23/2'' は時間の欄で用いられると、2 時間おきにコマンドを実行
|
|
することになります (別の方法で V7 標準で表せば
|
|
``0,2,4,6,8,10,12,14,16,18,20,22'' となります)。間隔指定はアスタリスクの
|
|
後で付けても構いません。たとえば ``2 時間おきに全て'' ということをしたい
|
|
なら ``*/2'' とするだけです。
|
|
.Pp
|
|
``月'' および ``曜日'' の指定には、名前を使用することができます。
|
|
曜日と月の指定には、最初の 3 文字を使ってください (この場合、
|
|
大文字・小文字の区別はありません)。名前による領域指定やリスト指定はでき
|
|
ません。
|
|
.Pp
|
|
``6 番目'' の欄 (行の残りの部分) には実行したいコマンドを指定します。行の
|
|
中のコマンド部全体、これは改行または % 文字までですが、は
|
|
.Pa /bin/sh
|
|
かまたはその cron ファイルの
|
|
.Ev SHELL
|
|
変数で指定されたシェルによって実行されます。コマンド内のパーセント記号
|
|
(%) はバックスラッシュ (\\) でエスケープされない限り改行文字に変換され、そ
|
|
の最初の % 以降の全てのデータはそのコマンドの標準入力となります。
|
|
.Pp
|
|
注: コマンド実行の日付は 2 つの欄 \(em 1 ヶ月中の日 および曜日
|
|
\(em で指定できます。両方の欄が領域限定されている (すなわち * でない
|
|
) 場合、コマンドは
|
|
.Em どちらかの
|
|
欄が現在の時刻と一致するときに実行されます。たとえば
|
|
``30 4 1,15 * 5''
|
|
は各月の 1 日および 15 日に加えて全ての金曜日において、
|
|
午前 4:30 にコマンドを実行させます。
|
|
.Pp
|
|
最初の 5 個の欄の代りに、
|
|
8 種類の特殊文字列のうちのいずれかが登場しても良いです:
|
|
.Bd -literal -offset indent
|
|
文字列 意味
|
|
------ -------
|
|
@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 * * * *"。
|
|
.Ed
|
|
.Sh cron ファイルの例
|
|
.Bd -literal
|
|
|
|
# 既定設定を 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"
|
|
5 4 * * sun echo "run at 5 after 4 every sunday"
|
|
.Ed
|
|
.Sh 関連項目
|
|
.Xr crontab 1 ,
|
|
.Xr cron 8
|
|
.Sh 機能拡張項目
|
|
曜日を指定するとき、日 0 と日 7 は日曜日とみなされます。
|
|
.Bx
|
|
および
|
|
.Tn ATT
|
|
はこの件については一致していないようです。
|
|
.Pp
|
|
リスト指定および領域指定は同じ欄内で指定できます。"1-3,7-9" は
|
|
.Tn ATT
|
|
や
|
|
.Bx
|
|
cron では受け付けません -- "1-3" や "7,8,9" だけが許されます。
|
|
.Pp
|
|
領域指定は ``間隔指定'' を含むことができますので "1-9/2" は "1,3,5,7,9" と
|
|
同じことになります。
|
|
.Pp
|
|
月の名前や曜日の名前は、名前で指定できます。
|
|
.Pp
|
|
環境変数は crontab の中で指定できます。
|
|
.Bx
|
|
や
|
|
.Tn ATT
|
|
では 子プロセスに渡された環境変数は基本的に
|
|
.Pa /etc/rc
|
|
から渡された環境変数です。
|
|
.Pp
|
|
crontab 所有者へメールされる (
|
|
.Bx
|
|
はできません) コマンド出力結果は、
|
|
crontab 所有者以外の人へメールしたり (SysV はできません)、
|
|
この機能を停止して誰にもメールを送らなくできます
|
|
(SysV はこれもできません)。
|
|
.Pp
|
|
最初の 5 個の欄の場所に記述可能な
|
|
.Sq @
|
|
コマンドすべては、拡張です。
|
|
.Sh 作者
|
|
.An Paul Vixie Aq paul@vix.com
|
|
.Sh バグ
|
|
夏時間というものがある奇妙な 70 の国々のいずれかにいる場合、
|
|
巻き戻しまたは早回しの期間へスケジュールされたジョブが影響を受けます。
|
|
一般的には、この期間へジョブをスケジュールすることは良いことではありません。
|
|
.Pp
|
|
US タイムゾーンでは (IN, AZ, HI を除き)、時刻シフトは午前 2 時に起ります。
|
|
他の国では、
|
|
.Xr zdump 8
|
|
プログラムの冗長
|
|
.Fl ( v )
|
|
オプションを使用して、時刻シフトがいつ起るのかを判定してください。
|