ディスク使用状況を表示するbashスクリプトを作成しています。ファイルシステムのサイズ使用量が95%を超える場合は、次のようにその行を一度だけ強調表示する必要があります。デフォルトでは、私のスクリプトはコマンドと同じになりたいdf -h
が、最大ディスク使用量を強調表示します。他のファイルシステムも出力に含める必要があります。これは私のスクリプトです。
readarray -t disk <<< "$(df -h | awk '{print $5}' | tail -n +2 | tr -d %)"
for i in "${disk[@]}"
do
if [ $i -gt 95 ]
then
df -h | grep --color -E "$i%|$"
fi
done
#df-h マウントされた%を使用して利用可能なファイルシステムサイズを利用可能 devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 140M 3.8G 4% /dev/shm tmpfs 3.9G 1.8M 3.9G 1%/実行 tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/mapper/centos-root 128G 107G 15G 96% / tmpfs 3.9G 15M 3.9G 1% /tmp /dev/sda1 453M 179M 247M 42% /boot tmpfs 789M 20K 789M 1% /実行/ユーザー/42 tmpfs 789M 60K 789M 1% /実行/ユーザー/1000 /dev/mapper/centos-home 100G 85G 16G 96% /mnt
答え1
これは私にとって効果的です。必要に応じて出力に色を割り当てることもできます。
#! /bin/bash -
TXT_BLD=$(tput bold)
TXT_RST=$(tput sgr0)
IFS= mapfile -t disk < <(df -h | tail -n +2)
for line in "${disk[@]}"; do
USAGE=$(echo $line | awk '{print $5/1}')
if [[ "$USAGE" -gt '95' ]]; then
echo "${TXT_BLD}$line${TXT_RST}"
else
echo "$line"
fi
done
85%を超えると線が黄色に変わり、95%を超えると線が赤に変わります。
#! /bin/bash -
TXT_BLD=$(tput bold)
TXT_RED=$(tput setaf 1)
TXT_YLW=$(tput setaf 3)
TXT_WARN="${TXT_BLD}${TXT_YLW}"
TXT_ERR="${TXT_BLD}${TXT_RED}"
TXT_RST=$(tput sgr0)
IFS= mapfile -t disk < <(df -h | tail -n +2)
for line in "${disk[@]}"; do
USAGE=$(echo $line | awk '{print $5/1}')
if [[ "$USAGE" -gt '95' ]]; then
echo "${TXT_ERR}$line${TXT_RST}"
elif [[ "$USAGE" -gt '85' ]]; then
echo "${TXT_WARN}$line${TXT_RST}"
else
echo "$line"
fi
done