役立つかもしれないシェルスクリプト

月一にサーバの稼働状況のレポートを提出するというお仕事があってディスクの使用容量とか調べるんだけど、その中に特定のディレクトリがディスクの使用容量のうち何%を使用しているかという項目があるんですよ。

パーティションごとならdfコマンドで%だせるんだけど、ディレクトリはduするけどでてこなくて手動で計算とかめんどいし自動化できそうだったのでシェルスクリプトに仕事させて自分は楽をするというスタンスなのでシェルスクリプト書きました。

コマンドで計算とかだと真っ先にexprコマンドを思い浮かべて実際に試してみたけど小数点以下がでてこないということで別の方法を探しました。で、rubyやらperlで計算すればいいらしいということがわかったけど、どちらかというとperlがよさそうなのでそっちを採用して計算させるようにしてます。

ディレクトリがディスク全体の使用容量のうち何%を使用しているか算出するシェルスクリプト

#!/bin/bash

USED=`du -sk / | tail -n 1 | awk '{print $1}'`
DIRECTORY=`du -sk $1 | tail -n 1 | awk '{print $1}'`

perl -e "print $DIRECTORY / $USED * 100"

仮に、checkperuse.sh とかいう名前で作成して実際にコマンドを使用する場合、引数に特定のディレクトリパスを入れます

# sh checkperuse.sh /var/log
1.46653592513084

という具合にでてきます。


いやー、シェルスクリプトはいいものですねー