• ベストアンサー

cronで第一水曜日に実行したい!

cronで第一水曜日に実行したいのですが、 どのように記述していいかわかりません。 (または可能かどうかもわかりません) 月はじめではダメなので、month部分の編集ではたりません。 第一水曜日というふうに設定したいのですが教えてください。 また、cronのみでできない場合は、シェルでどのように制御したらいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • 10gate
  • ベストアンサー率42% (50/117)
回答No.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)

回答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

参考URL:
http://www.linux.or.jp/JM/html/cron/man5/crontab.5.html

関連するQ&A