2007/02/09
たまにはシェル
ある条件が成立しているとメールを送るcronを書いていました。
可能な限り速く条件成立を知りたかったので毎5分で動かしていました。こんな感じです。
*/5 * * * * [ チェックする条件 ] && echo 'メール本文' | mail -s 'メールタイトル' メール宛先
条件が成立している限り、メールが大量に飛ぶ問題があります。
次のように変更しました。
*/5 * * * * [ ! -e /tmp/count.dat ] && echo 0 > /tmp/count.dat; [ `cat /tmp/count.dat` -lt 5 ] && [ チェックする条件 ] && expr `cat /tmp/count.dat` + 1 > /tmp/count.dat && echo 'メール本文' | mail -s 'メールタイトル' メール宛先
'-lt 5'の数字の5が連続して送るメール数の上限です。リセットしたい場合は、/tmp/count.datファイルを削除します。
変数を使うと少し短くできますが、変数を使うと負けた気がするので使っていません。同じ理由でifも使っていません。
- Category(s)
- カテゴリなし
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/inoue/shell-tips/tbping