1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
|
From cc62991ba094ff553b24a7284b3eee8eab1c9f4d Mon Sep 17 00:00:00 2001
From: Nobuhiro Iwamatsu <iwamatsu@debian.org>
Date: Mon, 8 Jul 2013 07:56:56 +0900
Subject: [PATCH 2/9] Update crontab.5 for debian
Signed-off-by: Nobuhiro Iwamatsu <iwamatsu@debian.org>
---
manual/cron/man5/crontab.5 | 108 +++++++++++++++++++++++++++++++++++++++-----
1 file changed, 97 insertions(+), 11 deletions(-)
diff --git a/manual/cron/man5/crontab.5 b/manual/cron/man5/crontab.5
index 03391d6..71932d1 100644
--- a/manual/cron/man5/crontab.5
+++ b/manual/cron/man5/crontab.5
@@ -67,14 +67,23 @@ crontab の動作行は、
文字列は引用符で括ってもよい (シングルクォートでもダブルクォートでも良いが、
揃っている必要がある)。
こうすれば先頭や末尾の空白を値に渡すことができる。
+.I value
+の文字列は、環境変数の置換のためにパースされることは
+.B ない
+。したがって、
+.PP
+ PATH = $HOME/bin:$PATH
+.PP
+のような行は期待どおりの動作をしないだろう。
.PP
いくつかの環境変数は
.IR cron (8)
デーモンによって自動的に設定される。
SHELL は /bin/sh に設定され、
LOGNAME とHOME は /etc/passwd の crontab の所有者の行から設定される。
-HOME と SHELL は crontab 内部の記述で変更できる。
-LOGNAME は変更できない。
+PATH は "/usr/bin:/bin" に設定される。
+HOME と SHELL、PATH は crontab 内部の記述で変更できる。
+LOGNAME はジョブを実行しているユーザなので変更できない。
.PP
(さらに注意:LOGNAME 変数は、 BSD システムではまれに USER と称される...
これらのシステム上では USER も設定される。)
@@ -87,16 +96,43 @@ MAILTO も参照する。
MAILTO が定義されていても値が設定されていなければ (MAILTO="")、
メールは送信されない。
MAILTO が定義もされていなければ、メールは crontab の所有者に送られる。
-cron をインストールする際に、メーラーを /usr/lib/sendmail ではなく
-/bin/mail にしていると、このオプションは便利である。
-/bin/mailはエイリアシングを行わないし、
-UUCP はたいていこのメールを読まないからである。
+.PP
+Debian GNU/Linux システムでは、cron は
+.B pam_env
+モジュールをサポートしており、
+.IR /etc/security/pam_env.conf
+で指定された環境変数をロードする。
+しかし PAM の設定は、前述の設定や
+.I crontab
+ファイル自体に書かれた設定を上書きでき
+.B ない
+。特に、"/usr/bin:/bin" 以外の値を PATH に設定したい場合は、
+その設定を crontab ファイル内で行う必要があることに注意せよ。
+.PP
+デフォルトでは、cron が送るメールの "Content-Type:"
+ヘッダの値には "text/plain" が使用され、その "charset=" パラメータには
+.IR crond(8)
+を起動したロケールの文字マップやコードセットが設定される。
+つまり、使用されるロケールは、
+LC_* 環境変数が設定されていない場合はシステムのデフォルトのロケール、
+そうでなければ LC_* 環境変数で指定されたロケールとなる (
+.IR locale(7)
+を参照)。
+crontab ファイル内で、
+変数 CONTENT_TYPE または CONTENT_TRANSFER_ENCODING の値に、
+それらの名前をもつメールヘッダの値として適切な値を設定すれば、
+メールされる cron ジョブの出力に異なる文字エンコーディングを使用できる。
.PP
cron コマンドの形式は V7 標準そのものであるが、
多くの上位互換な拡張がある。
各行には 5 つの時刻・日付フィールドがあり、
-(システムの crontab ファイルの場合) ユーザー名が続き、
-さらにコマンドが続く。
+さらにコマンドと改行文字 ('\\n') が続く。
+システムの crontab ファイル (/etc/crontab)
+は同様のフォーマットを使用するが、
+時刻・日付フィールドとコマンドの間で、
+コマンドを実行するユーザ名を指定する。
+フィールドはスペース区切りでもタブ区切りでもかまわない。
+.PP
分・時・月が現在時刻と一致し、
\fIかつ\fR、 2 つの日フィールド (月内日または曜日)
のいずれかが現在時刻と一致すれば (以下の「注意」を参照)、
@@ -154,6 +190,8 @@ cron コマンドの形式は V7 標準そのものであるが、
バックスラッシュ (\\) によってエスケープされずに置かれていると、
改行文字に置き換えられ、最初に現れた % 以降の全てのデータは
標準入力としてコマンドに送られる。
+シェルの行末の "\\" のような、
+コマンドの単一の行を複数行に分割して記述する方法は、crontab にはない。
.PP
注意: コマンド実行の日は 2 つのフィールドで指定できる \(em
月内日および曜日である。
@@ -165,11 +203,36 @@ cron コマンドの形式は V7 標準そのものであるが、
.br
とすると、毎月 1 日と 15 日および毎週金曜日の
午前 4:30 にコマンドが実行される。
+.PP
+最初の 5 つのフィールドの代わりに、
+8 つの特殊な文字列のいずれか 1 つを指定してもかまわない:
+.IP
+.ta 1.5i
+文字列 意味
+.br
+------ ----
+.br
+@reboot 起動時に一度だけ実行。
+.br
+@yearly 年に一度だけ実行 ("0 0 1 1 *" と等価)。
+.br
+@annually (@yearly と同様)
+.br
+@monthly 月に一度だけ実行 ("0 0 1 * *" と等価)。
+.br
+@weekly 週に一度だけ実行 ("0 0 * * 0" と等価)。
+.br
+@daily 一日に一度だけ実行 ("0 0 * * *" と等価)。
+.br
+@midnight (@daily と同様)
+.br
+@hourly 一時間に一度だけ実行 ("0 * * * *" と等価)。
+.br
.SH CRON ファイルの例
.nf
-# (/etc/passwd の指定に関らず) コマンド実行に /bin/sh を使用する。
-SHELL=/bin/sh
+# コマンドの実行に、デフォルトの /bin/sh ではなく /bin/bash を使用する。
+SHELL=/bin/bash
# (この crontab の所有者に関らず) あらゆる出力を `paul' にメールする。
MAILTO=paul
#
@@ -178,10 +241,31 @@ MAILTO=paul
# 毎月初日の 2:15pm に実行する -- 出力は paul にメールされる
15 14 1 * * $HOME/bin/monthly
# 平日の午後 10 時に実行してジョーを心配させる
-0 22 * * 1-5 mail -s "午後10時だ" joe%ジョー、%%お前の子どもはどこだい?%
+0 22 * * 1-5 mail -s "午後10時だ" joe%ジョー、%%お前の子どもはどこだい?%
23 0-23/2 * * * echo "毎日 0,2,4..時 23 分に実行する"
5 4 * * sun echo "日曜 4 時 5 分に実行する"
.fi
+.SH システム CRON ファイルの例
+システム CRON ファイルはユーザ名のフィールドを含み、
+/etc/crontab によって使用される。
+.nf
+# /etc/crontab: システム規模の crontab
+# 他の crontab ファイルとは異なり、このファイルを編集する際には、新し
+# いバージョンをインストールするための `crontab' コマンドを実行する必
+# 要はない。またこのファイルには、他の crontab ファイルのいずれにも含
+# まれないユーザ名のフィールドが含まれる。
+
+SHELL=/bin/sh
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+
+# m h dom mon dow user command
+42 6 * * * root run-parts --report /etc/cron.daily
+47 6 * * 7 root run-parts --report /etc/cron.weekly
+52 6 1 * * root run-parts --report /etc/cron.monthly
+#
+# anacron の呼び出しは /etc/cron.d ファイルによって行われるようになっ
+# たので、削除された。
+.fi
.SH 関連項目
cron(8), crontab(1)
.SH 拡張
@@ -203,6 +287,8 @@ BSD や ATT では、子プロセスに渡される環境は基本的に /etc/rc
また crontab の所有者以外の人にもメールできる (SysV ではこれができない)。
さらにこの機能を無効にし、
誰にもメールを送らないようにもできる (SysV ではこれもできない)。
+.PP
+最初の 5 つのフィールドの代わりに指定できる `@' コマンドは全て拡張である。
.SH 著者
.nf
Paul Vixie <paul@vix.com>
--
1.7.10.4
|