- PR -

crontab

1
投稿者投稿内容
QQVGA
会議室デビュー日: 2004/12/21
投稿数: 19
投稿日時: 2005-03-23 11:04
crontabで第2水曜日と第4水曜日にスクリプトを実行したいのですが、
どのように記述したらよいのでしょうか。

お教えください。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-03-23 12:06
こう考えると如何でしょう?
・第2○曜日ってのは、8日〜14日にある○曜日
・第4○曜日ってのは、22日〜28日にある○曜日

これであってるなら、次のようなcrontabでいけると思います。
コード:
分   時   8-14,22-28   月   wed


QQVGA
会議室デビュー日: 2004/12/21
投稿数: 19
投稿日時: 2005-03-23 12:54
angelさん、回答ありがとうございました。
うまくいきました。
水都
大ベテラン
会議室デビュー日: 2004/07/22
投稿数: 111
投稿日時: 2005-03-23 12:59
こんにちは、うまく行ったとの事ですがそれは水曜以外では動きませんか?
私が以前にAIXで第3日曜に処理をさせたくて同じ様に
m h 15-21 * 0 /home/penguin/hoge.sh
とやった時は15〜21日"と"日曜日に動いてしまい、結局日曜に実行して月日がその
範囲内かどうかの判定をさせていたのですが
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-03-23 13:11
引用:

水都さんの書き込み (2005-03-23 12:59) より:
こんにちは、うまく行ったとの事ですがそれは水曜以外では動きませんか?
私が以前にAIXで第3日曜に処理をさせたくて同じ様に
m h 15-21 * 0 /home/penguin/hoge.sh
とやった時は15〜21日"と"日曜日に動いてしまい、結局日曜に実行して月日がその
範囲内かどうかの判定をさせていたのですが



気になったので調べてみました。
引用:

JMのcrontab(5)より
注意: コマンド実行の日は 2 つのフィールドで指定できる --- 月内日および曜日である。もし両方のフィールドが制限指定 (* 以外) であると、 いずれかのフィールドが現在時刻と合った時にコマンドが実行される。例えば、
``30 4 1,15 * 5''
とすると、毎月 1 日と 15 日および毎週金曜日の午前 4:30 にコマンドが実行される。


これは見落としでしたね。申し訳ない。
てっきり、全フィールドを and 条件で結合するものと思っていました。

水都さんのおっしゃる通り、スクリプトの中で日付もしくは曜日判定を行った方がよさそうですね。
QQVGA
会議室デビュー日: 2004/12/21
投稿数: 19
投稿日時: 2005-03-30 14:06
みなさん、ありがとうございます。
注意事項を追記して頂いたのを今、気づきました。
第2水曜をセットしていたのですが、今日第5水曜に実行されたので、このスレを見返しました。今日は水曜でOR条件で実行されたわけですね。
ちょっと運用を考えて見ます。


[ メッセージ編集済み 編集者: QQVGA 編集日時 2005-03-30 14:12 ]
水都
大ベテラン
会議室デビュー日: 2004/07/22
投稿数: 111
投稿日時: 2005-03-30 16:59
拙いものですが同じ穴に落ちた者として参考にでもなれば、cronで日曜に実行して第3日曜判定をした時のものです
コード:
#! /usr/bin/sh
#
DAY=`date +%-d`
if [ \( $DAY -ge 15 \) -a \( $DAY -le 21 \) ]
    then
        (処理)
fi


月日で実行して曜日判定をするなら判定材料は date +%w あたりでしょうか
1

スキルアップ/キャリアアップ(JOB@IT)