inodeが80%に達したときに電子メールを送信するcronスクリプトを開発しています。
#!/bin/bash
#
OUT=$(df -ih | sed -n '1!p') # remove first line because it's irrelevant - second line is important
RE="([0-9]+)%" # find first numerical item that has percentage sign with it
#
[[ "$OUT" =~ $RE ]]
#
PERCENT=${BASH_REMATCH[0]}
#
if [[ $PERCENT > 80 ]]; then
OUT2=$(./send_email.sh)
echo "${OUT2}"
fi
進行中ですが、あまり良くありません。
質問
80%に達すると、その番号を自分に電子メールで送信するために使用されたinodeスペースの割合をどのように知ることができますか?この問題を解決するより良い方法があるという提案で開かれています。
ベストアンサー1
私はこれがよりきれいだと思います。
[ -n "$(df --output=ipcent | awk -F '%' 'NR>1 && $1>80')" ] && echo "80% hit."
df --output=ipcent
inode パーセント列のみが出力されます。awk -F '%' 'NR>1 && $1>80'
ヘッダーをスキップして(使用NR>1
)、パーセンテージが80%より大きいことを確認し、その場合はその行を印刷します。
テストでパイプ出力を確認してください-n
。何かを印刷したらエクスポートecho
してください。echo
mailコマンドに置き換えられました。