29 июл. 2010 г.

vxvm script number of plexes and subdisks

 Осторожно, за катом индусокод! :)






 

Надо больше отдыхать :) Написанный на скорую руку в прошлом скрипт для вычисления количества плексов и сабдисков в веритасе получилось оптимизировать раз в 200...  Вот такой индусокод иногда получается :(


Старый вариант:
#!/usr/bin/bash

DATE=`date +%Y%m%d`
mkdir $DATE
cd $DATE
GROUP=$1
vxprint  -q -g $GROUP -v|awk '{print $2}'  > volumes.$GROUP
cat volumes.$GROUP | while read V; do echo $V; NUM_PLEX=`vxprint -g $GROUP -rth $V | grep "pl " | wc -l`; echo -n  $V $NUM_PLEX >> num_plex.$GROUP; NUM_SD=`vxprint -g $GROUP -rth $V|grep "sd "|wc -l`; echo $NUM_SD>> num_plex.$GROUP ; done


 Новый вариант:
#!/usr/bin/bash

if [ $# -lt 1 ]
then
  echo "Usage ./checkplex.sh "
else

# disk group (the first argument)
DGNAME=$1

DATE=`date +%Y%m%d`
mkdir $DATE
cd $DATE 
vxprint -rthQq -g $DGNAME > vxprint.${DGNAME}
grep "v " vxprint.${DGNAME} | awk '{print $2,$6}' > volumes.${DGNAME}
cat volumes.${DGNAME} | while read vol size; do
        echo "${vol} ${size}"
        NUMPL=`grep $vol vxprint.${DGNAME} | grep "pl " | wc -l`
        NUMSD=`grep $vol vxprint.${DGNAME} | grep "sd " | wc -l`
        echo "${vol} ${size} ${NUMPL} ${NUMSD}" >> num.${DGNAME}
done

fi