-
- koichi_h
- 1443ポイント
- 投稿時間:2009/09/16 17:49
Linux のジョブスケジューリングに cron を使っています。crontab に 30 7 * * * /some/command と書くと毎日 7:30 に /some/command が実行されますが、 たとえば「来週の木曜日1日だけはこのコマンドを実行させたくない」というとき、 スマートに設定ができないことに悩んでいます。 今のところ、停止の計画があるたびに、前日になったら該当行をコメントアウトして、 翌日にコメントを外して元に戻す、という作業をしています。 不定期に何度もこういう要求があると、どうしても設定し忘れや 戻し忘れが発生してしまうため、困っています。 そこで、 停止する計画が明らかになった時点で、それが何日先のことであっても 日付を指定してその日のジョブを止めることができ、 翌日からは自動で元通りのスケジュールに戻る というジョブスケジューラがあればぜひ導入したいのですが、 そういったものがあれば教えて頂けないでしょうか。 実際に使われた経験があれば、安定性などの感想もいただけると助かります。 もちろん、cron を使って上記のような要求をスマートに扱うことができる方法があればそれでもかまいません。 よろしくお願いします。
- 回答数 (2)
- クリップ数 (0)
- アクセス数 (1711)
- 回答
もっと大きな要件であれば、運用管理ソフト(オープンソースの物もあります)を使うんでしょうけど、たったそれだけの要件であれば、作り込むのが簡単だと思いますよ。 ・除外日リストのファイルを作る ・コマンドの先頭で、除外日リストを読み込み、該当行があれば、すぐに終了 でいいかと。 コマンドがshで書かれていれば、とか。コピペする ブログに貼るgrep -q `date +%Y-%m-%d` jogaibi.txt && exit 0
atコマンドでcrondサービスを止めたり動かしたり・・・ではダメですか? scriptを組んでおけば、指定時間にcrondを止めて24時間後に再起動とかできると思います。 あとは、otnさんのように除外日リストの運用をするか、またはcronジョブ実行時にトリガーとなるファイルの有無で実行する/しない を判断させるとか・・・。この例ですと、/hoge/enable.fileが在ればコマンドは実行されますが、なければ実行は見送られます。 つまり停止日の前日にファイルを消す(それもatコマンドを使えば消す事を予約できます)ことで実行を中止させれます。コピペする ブログに貼る[ -f /hoge/enable.file ] && コマンド
1
回答
3
回答
3
回答
2
回答
5
回答
5
回答
4
回答
1
回答

