crontab: 正しい使い方と、一番左の危険なアイツ
crontab の実行日時指定で、「毎日3時」に実行させるつもりで
* 3 * * *
と書いたりしていませんか*1。
これは「毎日3時から3時59分まで一分おきに実行」の設定です。一番左の * (=「全ての分」=「0から59」) には注意しましょう。「毎日3時」だから「2カラム目を3」にするだけで大丈夫、と思って気を抜いてはいけません。当然、正しい設定は、
0 3 * * *
です。
参考
The time and date fields are:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
A field may be an asterisk (*),
which always stands for ``first-last''.
Ranges of numbers are allowed.
Ranges are two numbers separated with a hyphen.
The specified range is inclusive.
For example, 8-11 for an ``hours'' entry
specifies execution at hours 8, 9, 10 and 11.
man 5 crontab - Linux Man Pages
分 時 日 月 曜日 43 23 * * * 23:43に実行 12 05 * * * 05:12に実行 0 17 * * * 17:00に実行 0 17 * * 1 毎週月曜の 17:00に実行 0,10 17 * * 0,2,3 毎週日,火,水曜の 17:00と 17:10に実行 0-10 17 1 * * 毎月 1日の 17:00から17:10まで 1分毎に実行 0 0 1,15 * 1 毎月 1日と 15日と 月曜日の 0:00に実行 42 4 1 * * 毎月 1日の 4:42分に実行 0 21 * * 1-6 月曜日から土曜まで 21:00に実行 0,10,20,30,40,50 * * * * 10分おきに実行 */10 * * * * 10分おきに実行 * 1 * * * 1:00から 1:59まで 1分おきに実行 0 1 * * * 1:00に実行 0 */1 * * * 毎時 0分に 1時間おきに実行 0 * * * * 毎時 0分に 1時間おきに実行 2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02に実行 30 5 1,15 * * 1日と 15日の 5:30に実行
*1:私はやっていません。本当です。