
以下に基本的なコマンドがありますが、ディスク使用量が90%を超えない限り、電子メールは必要ありません。おそらく一種のelse if文です。
df -Ph | sed s/%//g | awk '{ if($5 > 90) print $0;}' | mail -s Disk Space Alert On $(hostname) [email protected]
答え1
私はあなたの命令を受け入れてそれにまとめることができました:
df -Ph | awk 'int($5) > 90 {print $0; rc=1}; END {exit rc}' || mail -s "Disk Space Alert On $(hostname)" [email protected]
sed
必要ないので削除しましたawk
。説明にawk
記載されているパーティションの1つが90%を超えると判断された場合は、ゼロ以外の戻りコードを設定し、ゼロ以外の値が返された場合にのみ電子メールを送信します。
私が考えることができる唯一の注意点は、エラーがawk
原因で失敗する可能性があり、まだ電子メールを受信することです。しかし、おそらくそれが理想的な通知です。
答え2
次のように動作します。
if [ $(LC_ALL=C df / | tail -1 | cut -d% -f1 | cut -d' ' -f12) -gt 90 ]; then echo mail -s "Disk Space Alert On $(hostname)" [email protected]; fi
df
ロケールによって異なる出力が提供されるため、プレフィックスを付けましたLC_ALL=C
。代替は、またはシステム用に設定された別のロケールC
です。POSIX
en_US.UTF-8
- 確認したいパーティションがインストールされている場所のパスを
/
入力してください。df /
-gt
「より大きい」を表す記号です。