check_vquota できた。

2008/3/3 – 16:53 追記

これドメイン名も引数にしないとつかえねぇ〜www。

と言うわけでUP をやめて、改良します。

2008/3/3 – 17:26 追記
ドメイン名を引数にするように改造しました。
しかしオレ、ばかすぐる〜www。

nagios の vpopmail 用 quota 確認プラグイン check_vquota を作りました。

誰かが使うかなと公開してみる…。bash で書いた恥ずかしいコードですが。。

NagiosExchange – check_vquota

うぇぇ。こうゆうの初めてなんだけど、大丈夫かな。英語で『あ゙〜〜』て言うのが来たりして。
でも後悔はしていない。



使い方

/usr/local/nagios/libexec あたりに置いて実行権を付けて…。

スクリプトの最初に、vuserinfo への Path とドメイン名を記載します。

ユーザ nagios で実行すように vidudo で権限付けて。

./check_vquota -w 90 -c 95 -D hogehoge.com とするとステータスと quota に近づいているユーザを表示します。(閾値はパーセンテージ)


仕組みは、vpopmail のコマンド vuserinfo -D [ ドメイン名 ] でユーザリストを取得して、vuserinfo -Q [ メールアドレス ] でquota ( XX% ) を取得 sed で成形して閾値と比較してダメなら Warning、Critical、Unknown のエンドコードを出す感じです。


やっぱり、引数で閾値を与えた方が便利だろうなぁ〜。と思って、引数与えるようにしたんですが、getopt のところで引っかかりました、小一時間悩んだあげく。。

$@はシェルスクリプトの位置パラメータ($1,$2,…)に展開されるので、それをgetoptにかけ、オプションとそのパラメータが先になるように並べ変える。その際、認識できないオプションがあったり、オプションのパラメータが存在しない場合はエラーとなる。その出力結果をもう一度「set — 」で位置パラメータに入れ直す。ただし、シェルの特別な文字を展開しないように、$OPTIONSをダブルクォート(“$OPTIONS”)としてパラメータ展開を行っているため、evalとして実行する。(そうしないと、setのパラメータとして展開されるので、ひとつの単語とみなされ$1にまとめて設定されてしまう。evalをつけるとevalのパラメータとして展開された後、「set –」が実行されるため、スペース区切りでそれぞれ位置パラメータに設定される。)

この説明でやっとわかりました。まだまだですね。。位置パラメータ のshift の仕方が間違えてました。


nagios,plugin,quota,クォータ,プラグイン,vpopmail,qmail,vchkpw,