doc/documentation/manual-pages/ja/man5/crontab.5
Sergio Carlavilla Delgado 989d921f5d Migrate doc to Hugo/AsciiDoctor
I'm very pleased to announce the release of
our new website and documentation using
the new toolchain with Hugo and AsciiDoctor.

To get more information about the new toolchain
please read the FreeBSD Documentation Project Primer[1],
Hugo docs[2] and AsciiDoctor docs[3].

Acknowledgment:
Benedict Reuschling <bcr@>
Glen Barber <gjb@>
Hiroki Sato <hrs@>
Li-Wen Hsu <lwhsu@>
Sean Chittenden <seanc@>
The FreeBSD Foundation

[1] https://docs.FreeBSD.org/en/books/fdp-primer/
[2] https://gohugo.io/documentation/
[3] https://docs.asciidoctor.org/home/

Approved by:    doceng, core
2021-01-26 00:31:29 +01:00

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 )
オプションを使用して、時刻シフトがいつ起るのかを判定してください。