月の第2月曜日の前週の木曜日に実行するcronジョブ

月の第2月曜日の前週の木曜日に実行するcronジョブ

私は、毎月第2月曜日の前の木曜日にジョブを実行するcronスケジュールを作成しようとしています。これまでのところ、

0 0 8 ? * MON#2

しかし、それは毎月第 2 月曜日に実行されます。その時点から 4 日前の木曜日までさかのぼる方法はありますか?

たとえば、2016 年 9 月の場合、その月の第 2 月曜日は 12 日です。したがって、これを前の木曜日、つまりその月の 8 日に実行するようにスケジュールしたいと思います。

答え1

cron ではそれができないと思います。0 0 * * 4毎週木曜日にスクリプトを実行し、そのスクリプトでその月の第 2 月曜日の前の木曜日かどうかを確認すればよいでしょう。

答え2

0 0 * * 4 [ $(date +\%d) -ge 4 -a $(date +\%d) -le 10 ] && run-script

木曜日 (ここでは、月内の任意の日の午前 0 時) に、test( [) を使用する crontab エントリを実行し、dateその月の日付が 4 から 10 までであるかどうかを確認します。その場合、任意のスクリプトを実行します。

関連情報