女子だってIT

Cron設定-RedHat 6.6

毎月実行するcron設定のメモです。

毎月第1週土曜日 23時にシェルスクリプトを実行

シェルスクリプトを作り、Cronで自動実行させるのですが。。
顧客からはシェルスクリプトの実行は土日じゃないとダメ!でした。毎月1日実行なら簡単なのにね。。。
毎月第1週の土曜日に実行する場合、毎月日付は変わるため日付は指定できません。
そしてPLはいつもの様に、どう設定するのかわからないけど出来るはずだから設定しろと。。。

ネットで探した設定を試しましたが、毎週動いてしまう。。。
複数のサイトで同じ設定が記載されているのに、皆さん検証しないで誰かのネタをそのままコピペして掲載しているのか、OSやバージョンが違うのか。。。と思いつつ、めでたくRedHat 6.6 では以下の設定で動きました。

●設定例
土曜日(6)、日付(date)が「07」以下の場合、 23時に 「/xx/xx.sh」を実行

00 23 * * 6 [ $(date +\%d) -le 07 ] && /xx/xx.sh > dev/null 2>&1

※設定時は \ は ¥に変更してくださいね。
※&&前の条件を満たした時に、&&以降で指定したコマンドを実行します。
個人的には土曜日は 6 ではなくsat がいいかな。。とは思いますが、仕事なので玄人っぽい?設定にしました。

土曜日の23時に実行するかなんて夜間に確認したくないのでテストをしたい時の例です。

●テスト例
水曜日(3)で日付(date)が07以下の場合 16時50分に実行

50 16 * * 3 [ $(date + \%d) -le 07 ] && /xx/xx.sh > dev/null 2>&1

こんなメモでも、お役立てたら幸いです。