linux shell 磁盤總量 磁盤剩餘量 佔用比例
#!/bin/bash
Time=`date "+%Y-%m-%d__%H:%M:%S"`
eval `df -T -m -x tmpfs -x devtmpfs | tail -n +2 | awk -v DiskSum=0 -v DiskLeft=0 '{printf("Pname["NR"]=%s;Psum["NR"]=%d;Pleft["NR"]=%d;Puseperc["NR"]=%s;", $7, $3, $4, $6); DiskSum+=$3; DiskLeft+=$5} END {printf("Pnum=%d;DiskSum=%d;DiskLeft=%d", NR, DiskSum, DiskLeft)}'`
for ((i = 1; i <= ${Pnum}; i++));do
echo "${Time} 1 ${Pname[$i]} ${Psum[$i]} ${Pleft[$i]} ${Puseperc[$i]}"
done
DiskPerc=$[ (100 - ${DiskLeft}*100/${DiskSum} ) ]
echo "${Time} 0 disk ${DiskSum} ${DiskLeft} ${DiskPerc}%"
Time=`date +%Y-%m-%d__%H:%M:%S`
Sum=(`df -m | tr -s -c 'a-zA-Z0-9%-/\n' ' ' | cut -d ' ' -f 2 | tr -s -c 'a-zA-Z0-9-' ' '`)
Remain=(`df -m | tr -s -c 'a-zA-Z0-9%-/\n' ' ' | cut -d ' ' -f 4 | tr -s -c 'a-zA-Z0-9' ' '`)
Perc=(`df -m | tr -s -c 'a-zA-Z0-9%-/\n' ' ' | cut -d ' ' -f 5 | tr -s -c 'a-zA-Z0-9%' ' '`)
Name=(`df -m | tr -s -c 'a-zA-Z0-9%-/\n' ' ' | cut -d ' ' -f 6 | tr -s -c 'a-zA-Z0-9/' ' '`)
n=${#Sum[*]}
Sum1=0
Sum2=0
Sum3=0
for (( i=1;i<n;i++ ));do
echo "$Time 1 ${Name[$i]} ${Sum[$i]} ${Remain[$i]} ${Perc[$i]}"
Sum1=$[$Sum1+${Sum[$i]}]
Sum2=$[$Sum2+${Remain[$i]}]
done
Sum3=$[$Sum1-$Sum2]
Sum3=$[$Sum3*100/$Sum1]
echo "$Time 0 disk $Sum1 $Sum2 ${Sum3}%"