cron
![]() |
![]() cronの | |
AT&Tベル | |
1975 | |
プログラミング |
C |
Unix、Unix | |
ジョブ |
cronは、Unix
cronは、
概 要
[cronの/etc
またはそのサブディレクトリ(/etc/cron.d
)に
# ┌─────────────分 (0〜59) # │ ┌─────────────時 (0〜23) # │ │ ┌─────────────日 (1〜31) # │ │ │ ┌─────────────月 (1〜12) # │ │ │ │ ┌─────────────曜 日 (0〜6〈日 〜土 〉、一 部 のシステムでは7も日 曜 日 ) # │ │ │ │ │ # │ │ │ │ │ # * * * * * [予 約 するコマンド]
*
ではない)
1 0 * * * printf "" > /var/log/apache/error_log
また、
45 23 * * 6 /home/oracle/scripts/export_dump.sh
*/n
を1,2,3
)。
*/5 1,2,3 * * * echo hello world
crontab -e
を
Amazon EventBridgeのcron0
を1
〜7
で
非 標 準 のマクロ
[マクロ | ||
---|---|---|
@yearly (@annually )
|
0 0 1 1 *
| |
@monthly
|
0 0 1 * *
| |
@weekly
|
0 0 * * 0
| |
@daily (@midnight )
|
0 0 * * *
| |
@hourly
|
0 * * * *
| |
@reboot
|
N/A |
@reboot
を@reboot
のジョブが
@reboot
は、
cronのパーミッション
[- /etc/cron.allow – このファイルが
存 在 する場 合 、cronジョブを使 用 するにはユーザー名 がこのファイルに含 まれている必 要 がある。 - /etc/cron.deny – cron.arrowファイルが
存 在 せず、cron.denyファイルが存 在 する場 合 、cronジョブを使 用 するにはユーザー名 がcron.denyファイルに含 まれていない必 要 がある。
どちらのファイルも
タイムゾーンの処 理
[CRON_TZ=[タイムゾーン]
の
式
[cronの
コメントは#
で
Yes | 0〜59 | * , -
|
||
Yes | 0〜23 | * , -
|
||
Yes | 1〜31 | * , - ? L W
|
? L W は | |
Yes | 1〜12
JAN〜DEC |
* , -
|
||
Yes | 0〜6
SUN〜SAT |
* , - ? L #
|
? L # は | |
No | 1970〜2099 | * , -
|
この |
システムのcrontabファイル(/etc/crontab)には、コマンドをroot
に
また、
- アスタリスク(
*
) - アスタリスク(ワイルドカード)は「すべて」を
表 す。例 えば、* * * * *
を指 定 すると、ジョブが毎 分 実 行 される。* * * * 1
を指 定 すると、ジョブが月 曜 日 にのみ毎 分 実 行 される。秒 の指 定 に対 応 している場 合 、アスタリスクを6個 指 定 するとジョブが毎 秒 実 行 される。
- コンマ(
,
) - コンマは、
値 を複 数 指 定 するのに使 う。例 えば、5番 目 の欄 でMON,WED,FRI
は「月 曜 日 ・水 曜 日 ・金 曜 日 」を指 す。
- ハイフン(
-
) - ハイフンは
範 囲 を表 す。例 えば、2000-2010
は、2000年 から2010年 までのすべての年 を指 す。
- パーセント(
%
) - コマンド
内 のパーセント(%
)は、バックスラッシュ(\
)でエスケープされていない場 合 、改 行 文 字 に変 換 され、最 初 の%
以 降 のデータが標 準 入 力 としてコマンドに渡 される[15]。
非 標 準 文 字
[L
L
は「最 後 の(last)」を意 味 する。曜 日 欄 で、「最 後 の金 曜 日 」(5L
)などを指 定 するのに使 う。日 欄 では、月 の最 終 日 を指 定 するのに使 う。
W
W
は、日 欄 で使 用 でき、その日 に最 も近 い平 日 (月 曜 日 〜金 曜 日 )を指 定 できる。例 えば、15W
と記 入 すると、15日 に最 も近 い平 日 が指 定 され、15日 が土 曜 日 であれば、14日 (金 曜 日 )にジョブが実 行 される。また、15日 が日 曜 日 であれば、16日 (月 曜 日 )に実 行 される。15日 が火 曜 日 であれば、そのまま15日 (火 曜 日 )に実 行 される。ただし、日 欄 に1W
を指 定 し、1日 が土 曜 日 であった場 合 、ジョブは月 を跨 がず3日 (月 曜 日 )に実 行 される。W
は、日 の範 囲 指 定 や一 覧 指 定 には使 用 できない。
- ハッシュ(
#
) #
は、曜 日 欄 で使 用 でき、この記 号 に続 いて1〜5の数 字 を指 定 する。月 の「第 2金 曜 日 」などを指 定 するのに使 う[16]。例 えば、5#3
と記 入 すると、毎 月 第 3金 曜 日 にジョブが実 行 される。
- クエスチョンマーク(
?
) 一 部 の実 装 では、月 ・曜 日 欄 を空 欄 にする際 に*
の代 わりに?
を使 う。その他 の実 装 では、?
がデーモンが起 動 した時 間 に置 き換 えられる。例 えば、デーモンが午 前 8時 25分 に起 動 した場 合 には? ? * * * *
が25 8 * * * *
と解 釈 され、再 起 動 されるまで毎 日 この時 間 に実 行 される[17]。
- スラッシュ(
/
) - Vixie Cronでは、スラッシュは
範 囲 と組 み合 わせて刻 み値 を指 定 するのに使 う[18]。例 えば、分 欄 に*/5
と記 入 すると、毎 5分 が指 定 される。より冗 長 なPOSIXの5,10,15,20,25,30,35,40,45,50,55,00
の省 略 表 記 である。POSIXにはスラッシュの用 法 に関 する定 義 がない[8]。
H
H
はJenkins継 続 的 インテグレーションシステムで使 用 できる。例 えば、20 * * * *
(毎 時 20分 )を指 定 する代 わりに、H * * * *
を指 定 して、ジョブを1時 間 に1回 、未 指 定 (ただし一 定 )の時 間 に継 続 的 に実 行 するよう指 定 できる。これにより、各 ジョブがそれぞれ別 のタイミングで分 散 して実 行 されるようになり、複 数 のジョブが同 じタイミングで実 行 されてリソースを奪 い合 うことを防 ぐことができる[19]。
関 連 項 目
[脚 注
[- ^ “Difference between cron, crontab, and cronjob?” (
英 語 ). Stack Overflow. 2023年 8月 31日 閲 覧 。 - ^ “What Is a Cron Job: Understanding Cron Syntax and How to Configure Cron Jobs”. Hostinger (2023
年 4月 14日 ). 2023年 8月 31日 閲 覧 。 - ^ “Automation with Cron job on Centos 8”. Comtronic (2020
年 4月 6日 ). 2023年 8月 31日 閲 覧 。 - ^ “Crontab – Quick Reference”. Admin's Choice (2009
年 12月 21日 ). 2023年 8月 31日 閲 覧 。 - ^ “Newbie Introduction to cron”. Unix Geeks (1999
年 12月 30日 ). 2023年 8月 31日 閲 覧 。 - ^ “Linux – cron and crontab”. Cornell University. 2019
年 6月 4日 時 点 のオリジナルよりアーカイブ。2023年 8月 31日 閲 覧 。 - ^ ディストリビューションの
種 類 による。 - ^ a b “crontab”. The Open Group Base Specifications. The IEEE and The Open Group. (2018) 2023
年 8月 31日 閲 覧 。 - ^ “Cron expressions reference”. Amazon Web Services. 2023
年 8月 31日 閲 覧 。 - ^ “crontab(5)”. FreeBSD File Formats Manual. The FreeBSD Project 2023
年 8月 31日 閲 覧 。 - ^ “#77563 – cron: crontab(5) lies, '@reboot' is whenever cron restarts, not the system”. Debian BTS. 2023
年 8月 31日 閲 覧 。 - ^ “crontab(5): tables for driving cron – Linux man page”. die.net. 2023
年 8月 31日 閲 覧 。 - ^ “Ubuntu Cron Howto”. Ubuntu (2016
年 11月 20日 ). 2023年 8月 31日 閲 覧 。 - ^ “CronTrigger Tutorial”. Quartz Scheduler. 2011
年 10月 25日 時 点 のオリジナルよりアーカイブ。2023年 9月 1日 閲 覧 。 - ^ “mcron crontab reference”. GNU. 2023
年 8月 31日 閲 覧 。 - ^ “Oracle® Role Manager Integration Guide”. Oracle. 2023
年 8月 31日 閲 覧 。 - ^ “Cron format”. nnCron. 2023
年 8月 31日 閲 覧 。 - ^ “FreeBSD File Formats Manual for CRONTAB(5)”. The FreeBSD Project. 2023
年 8月 31日 閲 覧 。 - ^ “Timer Trigger Syntax”. Jenkins. 2023
年 8月 31日 閲 覧 。