[Server] サーバー管理ツールを作る #4「HDD使用値の取得」

datacenter-286386_1280
LINEで送る
Share on GREE
Share on LinkedIn

サーバーのトラブルで、HDDをの使用領域が100%になってしまい、データが保存できなくなったり、正常な動作をしなくなったりする事は比較的よくあります。
HDDの使用領域の監視は、とても重要で、毎日どのくらいのデータを取得してどの位の頻度でデータバックアップしたり、データの保持期間などの値を決める重要なデータになります。

やりたい事

dfコマンドから、全てのディスクの使用割合を取得。主要ディスク1つのみという仕様でもいいのですが、汎用性やパーティションを切ることを考えると、全てのデータを取得する方が望ましいです。
おそらく、apacheサーバーとSQLサーバーとストレージサーバーでは、パーティション構造は違ってくる事が想像できます。

ソースコード

health-hdd.sh

解説

1,dfコマンドで情報を取得
2、awkで各行の値を取得する。
3、1行目はメニュー部分なので割合の記述されている”%”の位置を取得
4、2行目移行はデータ部ですが、1カラム目をディスク名として取得
5、同じく2行目移行のメニューで取得した%位置と同じ場所にあるデータを値として取得
6、2つのデータをkey=valueとして、jsonデータで出力

使い方

1、「servers.list」ファイルに対象サーバーを改行区切りでいくつでも保存する。

2、以下のコマンドを叩くだけ(任意位置から叩いてもOK)

※上記の値は全て「%」です。

全てのパーティションの値をとっているのでswapなどで100%になっているものもある場合もありますので、そういったパーティションを除外する仕組みをつくらないといけませんね。

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*