日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
CRONTAB(5) FreeBSD ファイルフォーマットマニュアル CRONTAB(5)
名称
crontab -- cron の駆動のためのテーブル
解説
crontab ファイルは、次の一般的な形式の cron(8) デーモンへの指示を含んでい
ます: ``この日のこの時間に、このコマンドをこの時期に実行する''。各ユーザ
は、彼ら自身の crontab があり、あらゆる与えられた crontab のコマンドは、
crontab を所有するユーザとして実行されます。uucp と News は、通常、cron
コマンドの一部分として明示的に su(1) を実行するための必要を排除して、それ
ら自体の (複数の) crontab があります。
空行と先導する空白とタブは、無視されます。最初の空白でない文字がポンド記
号 (#) である行は、コメントであり、無視されます。それらが、コマンドの一部
であると取られるので、コメントは、cron コマンドと同じ行を許さないことに注
意してください。同様に、コメントは、環境変数の設定と同じ行を許しません。
crontab のアクティブな行は、環境の設定または cron コマンドのいずれかとな
ります。環境の設定は、次の形式があります。
name = value
ここで、等号 (=) のまわりの空白は、オプションで、value のあらゆるその後の
先導されない空白は、name に割り当てられた値の一部です。value 文字列は、先
導するか、または後続する空白を保存する (シングルまたはダブルですが、一致
している) 引用符の中に置かれます。また、name 文字列は、先導する、後続する
か、または内部の空白を保存する (シングルまたはダブルですが、一致している)
引用符の中に置かれます。
いくつかの環境変数は、cron(8) デーモンによって自動的に設定されます。SHELL
は、/bin/sh に設定され、LOGNAME と HOME は、crontab の所有者の
/etc/passwd 行から設定されます。さらに、ユーザのログインクラスの環境変数
は、/etc/login.conf.db と ~/.login_conf から設定されます。(ログインクラス
の HOME の設定は、/etc/passwd から値を上書きされますが、crontab ファイル
それ自体の内の HOME の明示的な設定で上書きすることだけができる、コマンド
が、呼び出されるとき、カレントディレクトリを変更しません。) PATH があらゆ
る他の方法によって設定されないなら、それは、
/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin. をデフォル
トとします。HOME, PATH と SHELL とログインクラスから設定されたあらゆる変
数は、crontab の設定によって上書きされます。LOGNAME は、上書きされませ
ん。
(別の注: LOGNAME 変数は、ときどき BSD システムで USER と呼ばれます... こ
れらのシステムで、USER も設定されます)。
cron(8) に、``この'' crontab の実行しているコマンドの結果としてメールを送
信するためのなんらかの理由があるなら、それは、crontab で定義される続く設
定を尊重します (が、ログインクラスから取られません)。MAILTO が定義されて
いて (空でない) なら、メールは、そのように名前が付けられたユーザに送られ
ます。MAILFROM が定義されていて (空でない) なら、その値は、from アドレス
として使用されます。また、MAILTO は、コンマで受信者のユーザを区切ることに
よって複数の受信者に直接メールするために使用されます。MAILTO が定義されて
いるが、空で (MAILTO="") あるなら、メールは、送られません。そうでなけれ
ば、メールは、crontab の所有者に送られます。このオプションは、cron をイン
ストールするとき、メーラ (mailer) として /usr/lib/sendmail の代わりに
/bin/mail に決めるなら、有用です -- /bin/mail は、エイリアスを行わず、
UUCP は、通常そのメールを読み込みません。
cron コマンドの形式は、まさに V7 標準であり、多くの上方互換性の拡張があり
ます。各行は、5 つの時間と日付フィールドがあり、(オプションで
``:<group>'' と ``/<login-class>'' 接尾辞を付けて) ユーザ名が続き、これが
システムの crontab ファイルであるなら、コマンドが続きます。分、時、と年の
フィールドの月が現在の時間と一致するとき、そして 2 つの日のフィールド (月
の日、または週の日) の 1 つが現在の時間と一致するとき (下記の ``注'' を参
照)、コマンドは、cron(8) によって実行されます。cron(8) は、1 分ごとに 1
度、cron エントリを調査します。時間と日付フィールドは、次の通りです:
フィールド 許可される値
----- --------------
分 0-59
時 0-23
月の日 1-31
月 1-12 (または名前, 下記参照)
週の日 0-7 (0 または 7 は, 日曜, または名前を使用)
フィールドは、常に ``最初-最後'' を表す、アスタリスク (*) を指定できま
す。
数値の範囲は、許可されます。範囲は、ハイフンで区切られた 2 つの数です。指
定された範囲は、両端を含めます。例えば、``時間'' エントリのための 8-11
は、8、9、10 と 11 時に実行することを指定します。
リストは、許可されます。リストは、コンマによって区切られた数 (または範囲)
の組です。例: ``1,2,5,9''、``0-4,8-12''。
ステップ値は、範囲とともに使用することができます。``/<number>'' で範囲を
続けることは、範囲を通して数の値のスキップを指定します。例えば、
``0-23/2'' は、2 時間ごとのコマンドの実行を指定するために、時間フィールド
で使用することができます (V7 標準の代わりの方法は、``0、2、4、6、8、10、
12、14、16、18、20、22'' です)。また、ステップは、アスタリスクの後も許さ
れるので、利用者が、``2 時間おきに'' と指定したいなら、まさに、``*/2'' を
使用します。
また、名前は、``月'' と ``週の日'' のフィールドのために使用することができ
ます。特定の日または月の最初の 3 文字を使用します (大文字小文字は、問題に
なりません)。名前の範囲またはリストは、許可されません。
``6 番目:' のフィールド (行の残り) は、実行されるコマンドを指定します。1
つ以上のコマンドオプションは、処理の振る舞いを修正するために、コマンドに
先行します。行のコマンド部分の全体は、改行または % 文字まで、/bin/sh また
は cron ファイルの SHELL 変数で指定されたシェルによって実行されます。コマ
ンドのパーセント記号 (%) は、バックスラッシュ (\) でエスケープされないな
ら、改行文字に変更され、最初の % の後のすべてのデータは、標準入力としてコ
マンドに送られます。
次のコマンドオプションを供給することができます:
-n 成功した実行の後に、メールは、送られません。実行出力は、コマンド
が 0 以外の終了コードで終了するなら、メールが送られるだけです。-n
オプションは、cron(8) から来る潜在的に大量のメールのボリュームを
保存処理する試みです。
-q 実行は、ログ記録されません。
二重のオプションは、許可されません。
注: コマンドの実行の日付は、2 つのフィールド -- 月の日と週の日 -- によっ
て指定することができます。両方のフィールドが制限されている (すなわち、*
ではない) なら、コマンドは、いずれのフィールドが現在の時刻と一致している
とき、実行されます。例えば、``30 4 1,15 * 5'' は、各月の 1 日と 15 日とす
べての金曜日の午前 4:30 にコマンドが実行されます。
最初の 5 つのフィールドの代わりに、行は、8 つの特別な文字列の 1 つまたは
数値のいずれかが続いている `@' シンボルで始まります。認識される特別な文字
列は、次の通りです:
文字列 意味
------ -------
@reboot クーロンの起動時に 1 回実行.
@yearly 1 年に 1 回実行, "0 0 1 1 *".
@annually (@yearly と同じ)
@monthly 1 月に 1 回実行, "0 0 1 * *".
@weekly 1 週に 1 回実行, "0 0 * * 0".
@daily 1 日に 1 回実行, "0 0 * * *".
@midnight (@daily と同じ)
@hourly 1 時間に 1 回実行, "0 * * * *".
@every_minute 1 分に 1 度実行, "*/1 * * * *".
@every_second 1 秒に 1 度実行.
数値が続いている `@' シンボルには、ジョブの前の呼び出しの完了の後に、多く
が支持するジョブを実行することの特別な観念があります。通常の構文と違っ
て、通常のクロン実行の間に同じジョブの 2 回以上の呼び出しとオーバラップし
ていないことを保証しています。しかしながら、ジョブを含んでいるファイルが
修正されて、その後再ロードされるとき、ジョブが実行しているなら、オーバ
ラップが起こるかもしれないことに注意してください。最初の実行は、クロンが
開始されるか、または、crontab エントリが再ロードされる後、指定された秒数
スケジューリングされます。
cron ファイルの例
# cron によって設定されたデフォルトを上書きして, コマンドを実行するために
# /bin/sh を使用する
SHELL=/bin/sh
# これが誰の crontab であろうと, あらゆる出力を `paul' にメールします
MAILTO=paul
#
# 毎日, 深夜 0 時 5 分に実行する
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
# 毎月の 1 日の午後 2:15 に実行する -- paul にメールされた出力
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
15 14 1 * * $HOME/bin/monthly
# 平日の午後 10 時に実行する, Joe を困らせる
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
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"
# どんなに長くかかっても, 5 分間隔で実行します
@300 svnlite up /usr/src
# 分ごとに実行します, ログ記録を抑制します
* * * * * -q date
# 分ごとに実行します, ping が失敗するなら、メールを送るだけです
* * * * * -n ping -c 1 freebsd.org
関連項目
crontab(1), cron(8)
拡張機能
週の日を指定するとき、日 0 と日 7 の両方は、日曜日と見なされます。BSD と
ATT は、これに関して意見が異なっているようです。
リストと範囲は、同じフィールドに共存することが許可されます。"1-3、7-9"
は、ATT または BSD の cron によって拒否されます -- それらは "1-3" または
"7,8,9" 「のみ」を期待します。
範囲は、"ステップ" を含むことができるので、"1-9/2" は、"1,3,5,7,9" と同じ
です。
月または週の日の名前は、名前によって指定することができます。
環境変数は、crontab に設定することができます。BSD または ATT で、子プロセ
スに渡された環境は、基本的に、/etc/rc からのものです。
コマンド出力は、crontab の所有者に送られ (BSD は、これを行うことができま
せん)、crontab の所有者以外の人にメールすることができる (SysV は、これを
行うことができません) か、またはまたは、機能は、オフに切り替えることがで
き、メールは、全く送られません (SysV は、いずれも、これを行うことはできま
せん)。
最初の 5 つのフィールドの代わりに現れることができる `@' ディレクティブの
すべては、拡張です。
コマンドオプションを使用してコマンド処理を修正することができます。`-q' オ
プションは、ログ記録を抑制します。`-n' オプションは、成功した実行でメール
しません。
作者
Paul Vixie <paul@vix.com>
バグ
利用者が夏時間を順守する 70 余りの国々のうちの 1 つにいるなら、cron(8) が
-s フラグをつけて開始されていないなら、ロールバック (rollback) または移行
(advance) 中にスケジュールされたジョブは、影響されるかもしれません。一般
的に、cron(8) が (デフォルトで有効である) -s フラグを付けて開始されていな
いなら、この期間の間にジョブをスケジュールすることは、よい考えではありま
せん。より詳しい情報については、cron(8) を参照してください。
(AZ (アリゾナ) と HI (ハワイ) の一部分を除いて) US (米国) タイムゾーンに
ついて、時間シフトは、午前 2 時の現地時間に起こます。他について、zdump(8)
プログラムの冗長 (-v) オプションの出力は、時間シフトの瞬間を決定するため
に使用することができます。
FreeBSD 13.2 March 29, 2020 FreeBSD 13.2