これまで奇跡的にもこのタームでなにかを実行することがありませんでした。
全然知らなかったのですが、普通に指定って出来ないんですね(笑)
てっきり第一月曜日の17:00に実行であれば、こんな感じで簡単に出来ると思っていたのですが、
0 17 1-7 * mon echo "hogehoge" > fugafuga.txt
駄目みたい……
どうも日付と曜日って [ and ] じゃなくて [ or ] みたいです。罠ですね(笑)
みなさん、testコマンドを使って、コマンド側で振り分けているみたいなので、メモ代わりにまとめておきます。
隔週月曜日の例
0 17 * * mon test $(expr $(date '+\%W') \% 2 ) -eq 0 && echo "hogehoge" > fugafuga.txt
週番号を取得して2で割って余りがない場合に実行する感じですね。
3週毎、4週毎であれば、割る数を変更してあげるだけ。
crontabでは、%をエスケープする必要があるので注意。
第一月曜日の例
0 17 1-7 * * test $( date '+\%w' ) -eq 1 && echo "hogehoge" > fugafuga.txt
毎月1日〜7日の間だけ、曜日番号を取得し月曜日(1)だったら実行します。
隔週で利用した週番号を取得する%Wと違って曜日は小文字の%wなので注意です。