- ベストアンサー
cronで第一水曜日に実行したい!
cronで第一水曜日に実行したいのですが、 どのように記述していいかわかりません。 (または可能かどうかもわかりません) 月はじめではダメなので、month部分の編集ではたりません。 第一水曜日というふうに設定したいのですが教えてください。 また、cronのみでできない場合は、シェルでどのように制御したらいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 cronだけだと#1様のご指摘のとおりOR条件なのでできないと思います。 以下のような方法でいかがでしょう。 例えば第一水曜の午前6時に実行させたいとします。 0 6 1-7 * * sample.shell sample.shellの中の最初で、`date '+%w'` が3かどうかをチェックする cshなら if(`date '+%w'` != 3) then exit 0 endif みたいな感じです。
その他の回答 (1)
- cherry_moon
- ベストアンサー率36% (37/102)
回答No.1
cronの月内日と曜日はORのようですね。 cronでは毎週実行するようにして、スクリプトで第1水曜かどうか 判断する方法を考えてみました。 ↓はweekly.shを1段はさんで、monthly.shを呼び出す方法です。 第1かどうかの判定はもっとスマートにかける方法があると思います。 #crontab 0 2 * * 3 $HOME/bin/weekly.sh # $HOME/bin/weekly.sh if ( 'date|awk '{print 3}'` > 7 ) then #第1水曜ではないので、何もしない。 exit 0 endif $HOME/bin/monthly.sh