スクリプトでは、ディスク容量の監視をよりスマートにする方法を見つける必要があります。小さいファイルシステムでは90%がいっぱいになったときに警告を送信したいが、より大きなファイルシステムでは空き容量が数GBしかない場合にのみ警告する必要があります。
誰かがこれを説明できますか?
答え1
いくつかのオプションがありますが、要件に応じて次のスクリプトを変更する必要があります。
#!/usr/bin/awk -f
BEGIN{
ADMIN="root@localhost"
threshold=20
"date" | getline date
"uname -n" | getline hostname
while("LC_ALL=C df -Ph" | getline){
used=$5
if($1 != "Filesystem" && int(used) >= threshold){
print "Running out of space: "$1,used" used on "hostname" as on: "date
print "mail -s \"Alert: Almost out of disk space: " $1,used" used\" "ADMIN" >/dev/null" | "sh"
close("sh");
}
}
}
次のリンクを参照してください。 http://www.cyberciti.biz/tips/shell-script-to-watch-the-disk-space.html
http://www.linuxjournal.com/content/tech-tip-send-email-alert-when-your-disk-space-gets-low
答え2
check_disk
この目的のためにNagiosプラグインを(ab)使用できます。利点は、このソフトウェアが軽くてよくテストされており、パッケージマネージャ(Debian / Ubuntuパッケージnagios-plugins-basic
)によってすでに提供されている可能性があることです。使用例:
check_disk -w 10% -c 3 -u GB -p / -p /mnt
この例では、2つの結合ポイント/
とを確認します/mnt
。シャットダウン状態が2の場合、ディスクの空き容量が3GB未満、終了状態が1の場合、ディスクの空き容量が10%未満、終了状態が0の場合、両方の値に達しません。 Bashで終了状態を確認するのは簡単です$?
。