Een nette output voor df -k op AIX

Een script om een nette output van df -k te krijgen.

cat df -k.sh

#############################
#
# Auteur : Pieter de Bruijn
############################
Main () {
#======================
df -k|awk '{printf"%-40s %+16s %+9s %+8s \n",$7,$2,$3,$4}' > /tmp/dfk1
cd /home/oracle/scripts/

cat /tmp/dfk1|while read Line
do
veld1=`echo $Line|awk '{print $1}'`
if [ "$veld1" = "Mounted" ]
then echo $Line|awk '{printf"%-40s %+20s %+20s %+8s
\n",$1,$2,$3,$4}'
continue
fi

veld2=`echo $Line|awk '{print $2}'`
veld3=`echo $Line|awk '{print $3}'`
veld4=`echo $Line|awk '{print $4}'`
veld2=`decimal $veld2`
veld3=`decimal $veld3`

echo
"--------------------------------------------------------------------"
echo $veld1 $veld2 $veld3 $veld4 | awk '{printf"%-40s %+20s %+20s %+8s
\n",$1,$2,$3,$4}'

done
#======================
}

decimal () {
#======================

Avail=$1
Count=`echo $Avail|wc -c`
TEL=`expr $Count - 1`
case $TEL in
1|2|3) veld1=`echo $Avail`
echo $veld1
;;
4) veld1=`echo $Avail|cut -c1`
veld2=`echo $Avail|cut -c2-4`
echo $veld1"."$veld2
;;
4) veld1=`echo $Avail|cut -c1`
veld2=`echo $Avail|cut -c2-4`
echo $veld1"."$veld2
;;
4) veld1=`echo $Avail|cut -c1`
veld2=`echo $Avail|cut -c2-4`
echo $veld1"."$veld2
;;
5) veld1=`echo $Avail|cut -c1-2`
veld2=`echo $Avail|cut -c3-5`
echo $veld1"."$veld2
;;
6) veld1=`echo $Avail|cut -c1-3`
veld2=`echo $Avail|cut -c4-6`
echo $veld1"."$veld2
;;
7) veld1=`echo $Avail|cut -c1`
veld2=`echo $Avail|cut -c2-4`
veld3=`echo $Avail|cut -c5-7`
echo $veld1"."$veld2"."$veld3
;;
8) veld1=`echo $Avail|cut -c1-2`
veld2=`echo $Avail|cut -c3-5`
veld3=`echo $Avail|cut -c6-8`
echo $veld1"."$veld2"."$veld3
;;
9) veld1=`echo $Avail|cut -c1-3`
veld2=`echo $Avail|cut -c4-6`
veld3=`echo $Avail|cut -c7-9`
echo $veld1"."$veld2"."$veld3
;;
10) veld1=`echo $Avail|cut -c1`
veld2=`echo $Avail|cut -c2-4`
veld3=`echo $Avail|cut -c5-7`
veld4=`echo $Avail|cut -c8-10`
echo $veld1"."$veld2"."$veld3"."$veld4 ;;
11) veld1=`echo $Avail|cut -c1-2`
veld2=`echo $Avail|cut -c3-5`
veld3=`echo $Avail|cut -c6-8`
veld4=`echo $Avail|cut -c9-11`
echo $veld1"."$veld2"."$veld3"."$veld4 ;;

*) echo input te groot ; maximaal 11 cijfers ;;

esac
#======================
}
Main
df -k | awk '{t=t+$2}{s=s+$3}END{printf("%60d Gb %17d Gb \n",
t/1024/1024, s/1024/1024)}'

De output van de gegenereerde file, dfk1, zal er ongeveer zo uit komen te zien:

Mounted 1024-blocks Free %Used
/ 98304 56564 43%
/usr 1572864 166672 90%
/var 2097152 1409980 33%
/tmp 294912 291724 2%
/home 229376 46848 80%
 

Advertentie

>

Poll

Voorkeur
 

Wie is er aanwezig

We hebben 84 gasten online