Re: disk map script

From: Frank Chiavoni (Frank.Chiavoni@OIT.STATE.NJ.US)
Date: Thu Jan 08 2004 - 10:20:02 EST


Bill,

If you want color put it on a web page. Could have chosen better
colors...

Create html - mdiskmap.sh > mdiskmap.html

#!/bin/ksh
#
# Create a disk map of PP's and display on screen.
# Simulates the manual labour performed to create
# the same map in Excel.
#
# Check command line args
#
if [ "$#" -eq "0" ] ; then
   echo "Please specify one or more hdisks"
   exit 1
fi
#
i01=" 1 2 3 4 5 6"
i02="123456789012345678901234567890123456789012345678901234567890"
colors="#f2c8d0 #2d970b #2e0c7f #6b8a76 #45c53a #37dfb1 #b49618 \
 #0507d6 #32525f #b42363 #84ed57 #c359b7 #103660 #45ec3d #324565 \
 #940964 #51b538"

#
# row 1 = 1-60
# row 2 = 61-120
# and so on
#
# Create an array of single characters for display purposes
#

arrayCNT=1
for colour in $colors
do
        colorArray[${arrayCNT}]=$colour
        arrayCNT=`expr $arrayCNT + 1`
done

hdisks="$@"

echo "<html><head><title>mdiskmap</title></head><body>"

for hdisk in $hdisks ; do

##Didn't run as root so removed...
   if [ ! -r /dev/${hdisk} ] ; then
        :
      ##echo "Invalid disk ($hdisk) specified - skipping"
      ##continue
   fi

   echo "<font size=3 color=red><b>Partition map for
$hdisk:</b></font><br>"
   totalPPs=`lspv $hdisk|grep TOTAL|awk {'print $3'}`
   echo "<font size=3 color=red>$totalPPs PPS total on disk</font><p>"
   x=0

   defaultColor="#f7f2fd"
   while [ "$x" -le "$totalPPs" ] ; do
      ppArray[${x}]=$defaultColor
      x=`expr $x + 1`
   done

   LVs1=`lspv -l $hdisk|awk {'print $1'}`
   LVsCount=`echo "$LVs1"|wc|awk {'print $1'}`
   LVsCount2=`expr $LVsCount - 2`
   LVs2=`echo "$LVs1"|tail -$LVsCount2`
   charcounter=0
   key="<tr><td><font><b><i>Unused</i></b></font></td><td
bgcolor=\"${defaultColor}\"><font
color=\"${defaultColor}\">X....X</font></td></tr>"

   for LV in $LVs2 ; do

      charcounter=`expr $charcounter + 1`
      LVColor="${colorArray[${charcounter}]}"
      key="${key}<tr><td><font><b><i>${LV}</i></b></font></td><td
bgcolor=\"${LVColor}\"><font color=\"${LVColor}\">X</font></td></tr>"

      for pp in `lslv -m $LV|grep -v LP|awk {'print $2'}` ; do
         ppArray[${pp}]="$LVColor"
      done

   done

   echo "<table><tr>"

   a=1
   b=1
   while [ "$a" -le "$totalPPs" ] ; do
      echo "<td bgcolor=\"${ppArray[${a}]}\"><font
color=\"${ppArray[${a}]}\">X</font></td>"
      a=`expr $a + 1`
      b=`expr $b + 1`
      if [ "$b" -gt "60" ] ; then
         echo "</tr>"
         b=1
      fi
   done

   echo "</tr></table>"

   echo "<p><p><table><tr><td colspan=2><font color=red><b>Color
Codes</b></td></tr>"
   echo "$key</table>"

done

echo "</body></html>"

exit 0

-----Original Message-----
From: IBM AIX Discussion List [mailto:aix-l@Princeton.EDU]On Behalf Of
Bill Verzal
Sent: Wednesday, January 07, 2004 3:20 PM
To: aix-l@Princeton.EDU
Subject: disk map script

I don't know if anyone has something like this already, but I threw
this
together today. This is a functional version of the script, but very
simple.

This script will create a report on how individual hdisks are
allocated by
physical partitions. I usually use Excel to create color-coded ones,
but
they require alot of manual time filling in boxes with different
colors.

Feel free to pass this script on and modify it as you wish!

BV

..........



This archive was generated by hypermail 2.1.7 : Wed Apr 09 2008 - 22:17:28 EDT