ファイルシステム使用率の監視シェルスクリプト

ファイルシステム使用率の監視シェルスクリプトです。

大まかに以下のような仕様になっています。

  • リストファイルに監視対象のマウントポイントを記載しておく
  • 監視インターバルは秒数で指定可
  • 閾値は警告とエラーの2段階で設定

監視の仕組みとしては、こちらのファイルシステム使用率の監視スクリプトを常に実行状態としておき、閾値を超えたらログに出力させ、JP1などのログ監視の機能を用いてログにエラーが出力されたことを検知するいう運用を想定したものです。

ファイルシステム使用率監視のシェルスクリプト

サンプルコード(filesystem_mon.sh)

リストファイル(filesystem_mon.lst)

以下のように監視対象のファイルシステムのマウントポイントを、1行1データで記述しておきます。

解説

実行ユーザ確認と、リストファイル存在確認は念のため入れてます。

ファイルシステム使用率の確認処理は、以下の通り無限ループの処理です。
sleepコマンドを使うことで、指定した秒数だけ処理を止めることができます。

リストファイルの内容を1行ずつ読み込んでループ処理をさせる場合は、以下のようにWhile文とreadコマンドを組み合わせる方法でできます。
FSの部分は任意の変数名を指定する箇所です。他の名前でもかまいません。

各ファイルシステム使用率は、dfコマンドの結果からパーセントの数字部分のみを切り出して判定します。
dfコマンドの実行結果のサンプルは以下の通りです。dfコマンドにオプションで-Pをつけているのは、1ファイルシステムのデータが2行で出力されることを防ぐためです。ファイルシステム名が長い時に2行で出力される場合があります。

以下のコマンドラインの部分で、ファイルシステム使用率を抜き出しています。

df -P ${FS} | tail -1 → dfコマンドの結果のうち最終行のみを抜き出す
awk ‘{print $5}’  → 左から5番目のカラムの値(Use%の値)を抽出する
sed ‘s/%//’    → %の記号を除外して数字部分のみにする。

あとはIF文の部分で、閾値を超えているかを判定して、エラーメッセージをログに出力させています。

コメント

タイトルとURLをコピーしました