サーバのHDD容量をチェックしてメール送信する処理

20110414-grass.png

HDDの容量が無くなると当然のことながらサーバのいろんな処理が不具合を出します。
最悪、フリーズします。

MRTGやHotSaNICなどの監視ツールを入れてこまめにチェックするのもサーバ管理としては正しいとは思いますが、
そろそろ危なくなってきたなーという頃合にメールでお知らせしてくれる親切な機能があってもいいじゃない。

とワタクシ、そう考えたわけでございます。

なので、そんな保険的な処理を作ってみました。

簡単な流れとしては、
1日1回HDDの容量をチェックして使用割合が一定の値を超えたらメールを携帯に投げてくれるというもの。

以下、bashスクリプトです。


 
[hdd-check.sh]
#!/bin/bash
###########################################
# HDDの容量を自動でチェック
###########################################

#########################
# dfコマンドで容量を取得
data=$(df -h /)

#########################
# 容量の使用割合を抽出
rate=$(echo $data | awk '{printf "%s",$11}')

# 使用割合から'%'を削除
value=$(echo $rate | sed -e 's/\%//i')

#########################
# 90%を閾値として比較
if [ $value -gt 90 ] ; then

  ######################
  # メール設定
  to_addr='**********@k.vodafone.ne.jp'
  subject=$(echo 'サーバ[******]のHDD容量が90%を越えました.' | nkf -j)
  body=$(echo "現在のHDD使用割合は ${rate} です." | nkf -j)
  data=$(echo $data | nkf -j)

  # メール送信
  mail -s $subject $to_addr << M_BODY
$body
---------------
$data
M_BODY

fi

# 終了
exit 0

これが正攻法なやり方なのかは分かりませんが、目的をこなすことができるのでOKかなと。

ちなみに補足しておくと、[k.vodafone.ne.jp]というのは関西のボーダフォンに割り振られるメルアドです。

そうです、私はボーダフォンユーザーなのです。

大阪の江坂でウェブ制作をしている、インフラもシステムもデザインもディレクションもできるエンジニア。 広く浅く薄っぺらくですが(笑)

Leave a reply:

Your email address will not be published.