名 前
crontab − cron を 駆 動 す る た め の 一 覧 表
説 明
crontab フ ァ イ ル に は cron(8) デ ー モ ン へ の 命 令 が 「 こ の 日 付 の こ の 時 刻 に こ の コ マ ン ド を 使 用 せ よ 」 と い う 形 式 で 書 き 込 ま れ て い る 。 ユ ー ザ は そ れ ぞ れ 自 分 用 の crontab を 持 っ て お り 、 各 crontab に 与 え ら れ た コ マ ン ド は 、 そ の crontab を 所 有 し て い る ユ ー ザ の 権 限 で 実 行 さ れ る こ と に な る 。 UUCP や News は た い て い そ れ ぞ れ の crontab を 持 っ て い る の で 、 cron コ マ ン ド の 一 部 で su(1) を 明 示 的 に 実 行 す る 必 要 性 は な い 。 空 行 お よ び 行 頭 の ス ペ ー ス ・ タ ブ は 無 視 さ れ る 。 行 先 頭 の 空 白 以 外 の 文 字 が # の 行 は コ メ ン ト 行 で あ り 、 無 視 さ れ る 。 cron コ マ ン ド と し て の 行 に 注 釈 と し て の コ メ ン ト を 入 れ る こ と は で き な い 。 そ れ ら は コ マ ン ド の 一 部 と み な さ れ て し ま う 。 同 様 に 、 環 境 変 数 を 設 定 し て い る 行 に コ メ ン ト を 入 れ る こ と は で き な い 。
crontab の 動 作 行 は 、 環 境 変 数 の 設 定 か cronコ マ ン ド の い ず れ か で あ る 。 環 境 変 数 の 設 定 は 以 下 の 形 式 を と る :
name = value た だ し 、 等 号 (=) 両 側 の ス ペ ー ス は な く て も 良 い 。 value 内 部 の (先 頭 で は な い ) ス ペ ー ス 文 字 は 、 値 の 一 部 と し て name に 与 え ら れ る 。 value 文 字 列 は 引 用 符 で 括 っ て も よ い (シ ン グ ル ク ォ ー ト で も ダ ブ ル ク ォ ー ト で も 良 い が 、 揃 っ て い る 必 要 が あ る )。 こ う す れ ば 先 頭 や 末 尾 の 空 白 を 値 に 渡 す こ と が で き る 。 value の 文 字 列 は 、 環 境 変 数 の 置 換 の た め に パ ー ス さ れ る こ と は な い 。 し た が っ て 、
PATH = $HOME/bin:$PATH の よ う な 行 は 期 待 ど お り の 動 作 を し な い だ ろ う 。 い く つ か の 環 境 変 数 は cron(8) デ ー モ ン に よ っ て 自 動 的 に 設 定 さ れ る 。 SHELL は /bin/sh に 設 定 さ れ 、 LOGNAME と HOME は /etc/passwd の crontab の 所 有 者 の 行 か ら 設 定 さ れ る 。 PATH は "/usr/bin:/bin" に 設 定 さ れ る 。 HOME と SHELL、 PATH は crontab 内 部 の 記 述 で 変 更 で き る 。 LOGNAME は ジ ョ ブ を 実 行 し て い る ユ ー ザ な の で 変 更 で き な い 。
(さ ら に 注 意 : LOGNAME 変 数 は 、 BSD シ ス テ ム で は ま れ に USER と 称 さ れ る ... こ れ ら の シ ス テ ム 上 で は USER も 設 定 さ れ る 。 ) LOGNAME, HOME, SHELL の 他 に 、 cron(8) は 「 こ の 」 crontab を 実 行 し た 結 果 メ ー ル を 送 る 必 要 が 生 じ た 場 合 、 MAILTO も 参 照 す る 。 も し MAILTOが 定 義 さ れ て い た ら (お よ び そ れ が 空 で な か っ た ら ) そ の 名 前 の ユ ー ザ ー に メ ー ル を 送 る 。 MAILTO が 定 義 さ れ て い て も 値 が 設 定 さ れ て い な け れ ば (MAILTO="")、 メ ー ル は 送 信 さ れ な い 。 MAILTO が 定 義 も さ れ て い な け れ ば 、 メ ー ル は crontab の 所 有 者 に 送 ら れ る 。
Debian GNU/Linux シ ス テ ム で は 、 cron は pam_env モ ジ ュ ー ル を サ ポ ー ト し て お り 、 /etc/security/pam_env.conf で 指 定 さ れ た 環 境 変 数 を ロ ー ド す る 。 し か し PAM の 設 定 は 、 前 述 の 設 定 や crontab フ ァ イ ル 自 体 に 書 か れ た 設 定 を 上 書 き で き な い 。 特 に 、 "/usr/bin:/bin" 以 外 の 値 を PATH に 設 定 し た い 場 合 は 、 そ の 設 定 を crontab フ ァ イ ル 内 で 行 う 必 要 が あ る こ と に 注 意 せ よ 。 デ フ ォ ル ト で は 、 cron が 送 る メ ー ル の "Content-Type:" ヘ ッ ダ の 値 に は "text/plain" が 使 用 さ れ 、 そ の "charset=" パ ラ メ ー タ に は crond(8) を 起 動 し た ロ ケ ー ル の 文 字 マ ッ プ や コ ー ド セ ッ ト が 設 定 さ れ る 。 つ ま り 、 使 用 さ れ る ロ ケ ー ル は 、 LC_* 環 境 変 数 が 設 定 さ れ て い な い 場 合 は シ ス テ ム の デ フ ォ ル ト の ロ ケ ー ル 、 そ う で な け れ ば LC_* 環 境 変 数 で 指 定 さ れ た ロ ケ ー ル と な る ( locale(7) を 参 照 )。 crontab フ ァ イ ル 内 で 、 変 数 CONTENT_TYPE ま た は CONTENT_TRANSFER_ENCODING の 値 に 、 そ れ ら の 名 前 を も つ メ ー ル ヘ ッ ダ の 値 と し て 適 切 な 値 を 設 定 す れ ば 、 メ ー ル さ れ る cron ジ ョ ブ の 出 力 に 異 な る 文 字 エ ン コ ー デ ィ ン グ を 使 用 で き る 。
cron コ マ ン ド の 形 式 は V7 標 準 そ の も の で あ る が 、 多 く の 上 位 互 換 な 拡 張 が あ る 。 各 行 に は 5 つ の 時 刻 ・ 日 付 フ ィ ー ル ド が あ り 、 さ ら に コ マ ン ド と 改 行 文 字 (’\n’) が 続 く 。 シ ス テ ム の crontab フ ァ イ ル (/etc/crontab) は 同 様 の フ ォ ー マ ッ ト を 使 用 す る が 、 時 刻 ・ 日 付 フ ィ ー ル ド と コ マ ン ド の 間 で 、 コ マ ン ド を 実 行 す る ユ ー ザ 名 を 指 定 す る 。 フ ィ ー ル ド は ス ペ ー ス 区 切 り で も タ ブ 区 切 り で も か ま わ な い 。 分 ・ 時 ・ 月 が 現 在 時 刻 と 一 致 し 、 か つ 、 2 つ の 日 フ ィ ー ル ド (月 内 日 ま た は 曜 日 ) の い ず れ か が 現 在 時 刻 と 一 致 す れ ば (以 下 の 「 注 意 」 を 参 照 )、 コ マ ン ド が cron(8) に よ っ て 実 行 さ れ る 。 cron(8) は 毎 分 に 一 度 cron エ ン ト リ を 調 べ る 。 時 間 と 日 付 フ ィ ー ル ド は 以 下 の 通 り : フ ィ ー ル ド 指 定 可 能 な 値
---------- -------------- 分 0-59 時 0-23 月 内 日 1-31 月 1-12 (も し く は 名 前 。 下 記 を 参 照 ) 曜 日 0-7 (0 と 7 は 日 曜 日 。 も し く は 名 前 ) フ ィ ー ル ド に は ア ス タ リ ス ク (*) も 指 定 で き る 。 こ れ は あ ら ゆ る フ ィ ー ル ド で ’’first−last’’ と い う 意 味 に な る 。 数 値 の 範 囲 も 指 定 で き る 。 範 囲 は 二 つ の 数 を ハ イ フ ン で つ な げ る 。 指 定 数 値 も 領 域 に 含 ま れ る 。 例 え ば 「 時 」 に 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」 フ ィ ー ル ド (行 の 残 り の 部 分 ) に は 実 行 さ れ る コ マ ン ド を 指 定 す る 。 そ の 行 の コ マ ン ド 部 (改 行 文 字 ま た は % 文 字 ま で ) が /bin/sh (ま た は そ の crontab フ ァ イ ル の SHELL 環 境 変 数 で 指 定 さ れ た シ ェ ル ) に よ っ て 実 行 さ れ る 。 コ マ ン ド 中 に パ ー セ ン ト 記 号 (%) が バ ッ ク ス ラ ッ シ ュ (\) に よ っ て エ ス ケ ー プ さ れ ず に 置 か れ て い る と 、 改 行 文 字 に 置 き 換 え ら れ 、 最 初 に 現 れ た % 以 降 の 全 て の デ ー タ は 標 準 入 力 と し て コ マ ン ド に 送 ら れ る 。 シ ェ ル の 行 末 の "\" の よ う な 、 コ マ ン ド の 単 一 の 行 を 複 数 行 に 分 割 し て 記 述 す る 方 法 は 、 crontab に は な い 。 注 意 : コ マ ン ド 実 行 の 日 は 2 つ の フ ィ ー ル ド で 指 定 で き る — 月 内 日 お よ び 曜 日 で あ る 。 も し 両 方 の フ ィ ー ル ド が 制 限 指 定 (* 以 外 ) で あ る と 、 い ず れ か の フ ィ ー ル ド が 現 在 時 刻 と 合 っ た 時 に コ マ ン ド が 実 行 さ れ る 。 例 え ば 、
’’30 4 1,15 * 5’’ と す る と 、 毎 月 1 日 と 15 日 お よ び 毎 週 金 曜 日 の 午 前 4:30 に コ マ ン ド が 実 行 さ れ る 。 最 初 の 5 つ の フ ィ ー ル ド の 代 わ り に 、 8 つ の 特 殊 な 文 字 列 の い ず れ か 1 つ を 指 定 し て も か ま わ な い : 文 字 列 |
意 味 | |
------ |
---- | |
@reboot |
起 動 時 に 一 度 だ け 実 行 。 | |
@yearly |
年 に 一 度 だ け 実 行 ("0 0 1 1 *" と 等 価 )。 | |
@annually |
(@yearly と 同 様 ) | |
@monthly |
月 に 一 度 だ け 実 行 ("0 0 1 * *" と 等 価 )。 | |
@weekly |
週 に 一 度 だ け 実 行 ("0 0 * * 0" と 等 価 )。 | |
@daily |
一 日 に 一 度 だ け 実 行 ("0 0 * * *" と 等 価 )。 | |
@midnight |
(@daily と 同 様 ) | |
@hourly |
一 時 間 に 一 度 だ け 実 行 ("0 * * * *" と 等 価 )。 |
CRON フ ァ イ ル の 例
# コ
マ ン ド の 実 行
に 、 デ フ ォ ル
ト の /bin/sh で は な
く /bin/bash を 使 用 す
る 。
SHELL=/bin/bash
# (こ の crontab の 所 有
者 に 関 ら ず ) あ
ら ゆ る 出 力 を
’paul’ に メ ー ル
す る 。
MAILTO=paul
#
# 毎 日 、 日 付 変
更 の 5 分 後 に 実
行 す る
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out
2>&1
# 毎 月 初 日 の 2:15pm
に 実 行 す る -- 出
力 は paul に メ ー ル
さ れ る
15 14 1 * * $HOME/bin/monthly
# 平 日 の 午 後 10 時
に 実 行 し て ジ
ョ ー を 心 配 さ
せ る
0 22 * * 1-5 mail -s "午 後 10時
だ " joe%ジ ョ ー 、
%%お 前 の 子 ど も
は ど こ だ い ?%
23 0-23/2 * * * echo "毎 日 0,2,4..時
23 分 に 実 行 す る
"
5 4 * * sun echo "日 曜 4 時 5
分 に 実 行 す る
"
シ ス テ ム CRON フ ァ イ ル の 例
シ ス テ ム CRON フ ァ イ ル は ユ ー ザ 名 の フ ィ ー ル ド を 含 み 、 /etc/crontab に よ っ て 使 用 さ れ る 。
# /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 フ ァ イ ル
に よ っ て 行 わ
れ る よ う に な
っ
# た の で 、 削 除
さ れ た 。
関 連 項 目
拡 張
曜 日 指 定 に お い て 、 0 も 7 も 日 曜 日 と み な さ れ る 。 BSD と ATT で は こ の よ う に は な っ て い な い よ う だ 。 リ ス ト と 範 囲 は 同 じ フ ィ ー ル ド に 共 存 で き る 。 ATT や BSD の cron で は "1-3,7-9" は 拒 否 さ れ る だ ろ う -- "1-3" ま た は "7,8,9" の い ず れ か だ け し か 指 定 で き な い 。 範 囲 に 「 間 隔 値 」 を 指 定 で き る 。 す な わ ち "1-9/2" が "1,3,5,7,9" と 同 じ 。 月 ま た は 曜 日 を 名 前 で 指 定 で き る 。 環 境 変 数 を crontab の 内 部 で 設 定 で き る 。 BSD や ATT で は 、 子 プ ロ セ ス に 渡 さ れ る 環 境 は 基 本 的 に /etc/rc の も の で あ る 。 コ マ ン ド の 出 力 は crontab の 所 有 者 に メ ー ル さ れ る (BSD で は こ れ を 行 わ な い )。 ま た crontab の 所 有 者 以 外 の 人 に も メ ー ル で き る (SysV で は こ れ が で き な い )。 さ ら に こ の 機 能 を 無 効 に し 、 誰 に も メ ー ル を 送 ら な い よ う に も で き る (SysV で は こ れ も で き な い )。 最 初 の 5 つ の フ ィ ー ル ド の 代 わ り に 指 定 で き る ’@’ コ マ ン ド は 全 て 拡 張 で あ る 。
著 者
Paul Vixie <paul [AT] vix.com>