Cronjob - コマンド、電子メールからinode%を削除する

Cronjob - コマンド、電子メールからinode%を削除する

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=ipcentinode パーセント列のみが出力されます。

  • awk -F '%' 'NR>1 && $1>80'ヘッダーをスキップして(使用NR>1)、パーセンテージが80%より大きいことを確認し、その場合はその行を印刷します。

テストでパイプ出力を確認してください-n。何かを印刷したらエクスポートechoしてください。echomailコマンドに置き換えられました。

おすすめ記事