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

