私が知っている限り、crontabには左から右に始まるこれらのフィールドがあります。
1 minutes 0-59
2 hours 0-23
3 days of month 0-31
4 month 1-12
5 day of the week 0-6
6 command
15日ごとに15時30分にfooコマンドを実行したいと思います。これは、コマンド1と15が実行される月が30日(31日)であるため、15日ごとに実行されるため、これは正しいです。
30 15 1,15 * * /sbin/foo -a 1> /dev/null
この構文も正しいですか?
30 15 */15 * * /sbin/foo -a 1> /dev/null
システムはDillon Cronを使用するSlackware Linuxです。
ベストアンサー1
構文は30 15 */15 * *
正確ですが、thisと同じようには機能しません30 15 1,15 * *
。
後者は「月」フィールドに固定のカンマ区切り値を提供するため、今月と月ごとの1st
コマンドを実行します。15th
/
最初から毎日実行されるように定義されたステップは*/15
、(すべての月に対して)および(31日があるすべての月について)を意味します。15
1
1st
16th
31th
前述したように、man crontab(5)
ステップ値は範囲と共に使用することができる。したがって、/
構文を使用して同じ結果を得るには、次のようにします。30 15 1-15/14 * *
これは30 15 1,15 * *
。
別の例として、15日ごとに実行しますが、毎月5日と20日に実行したい場合:5-20/15
。もちろん、この場合はと書く方が読みやすくなります5,20
。ただし、範囲とステップを組み合わせることで、範囲実行の開始と終了を定義できます。
毎月1日、3日、5日、7日などの日:*/2
毎月2日、4日、6日、8日などの場合:2-30/2
Minutes(0-59
)とHours(0-23
)の場合、最初の有効な値は次のとおりです0
。0 */2 * * *
atなどを意味します00:00
。02:00
04:00