13日の金曜日の指定はダメ! crontabでは特定の「日付かつ曜日」は実行できない

スポンサーリンク
スポンサーリンク

crontabで、特定の「日付かつ曜日」に動作させることは出来ません。
例えば、「13日の金曜日」の指定はダメで、これは、crontab の仕様です。

crontab ファイルの書式は、次のようになります。

分 時 日 月 曜日 コマンド

ここで、「13日の金曜日」の12:00 に実行させるために、次のように指定しても、思い通りに実行されません。

0 12 13 * 5 command.sh

この指定では、毎月13日の 12:00、または、毎週金曜日の 12:00 の実行になります。

これは、crontab の仕様で、次のようになっています。

Man page of CRONTAB

注意: コマンド実行の日は 2 つのフィールドで指定できる — 月内日および曜日である。 もし両方のフィールドが制限指定 (* 以外) であると、 いずれかのフィールドが現在時刻と合った時にコマンドが実行される。 例えば、
“30 4 1,15 * 5”
とすると、毎月 1 日と 15 日および毎週金曜日の 午前 4:30 にコマンドが実行される。

crontab で、日と曜日、両方とも * 以外が指定されていた場合は、どちらかの場合に実行されるということです。

以下の例では、日に13、曜日に5(=金曜日)が指定されており、両方とも * 以外です。
従って、13日の12:00、または金曜日の12:00に実行されます。

0 12 13 * 5 command.sh

気を付けていないと、不要な実行をすることになるので、注意が必要です。

コメント

タイトルとURLをコピーしました