Wednesday, June 18, 2008

Handy Script Freeze / UnFreeze Veritas Cluster

This is a small handy script to freeze and unfreeze. This script works on Linux and Solaris.

#!/bin/ksh
####################################################################
# ChkCluster.sh #
# #
# Purpose: This shell script Frzee / un-Frzee / Status of #
# a given cluster #
# Maintenance Log: #
# #
# Date Who Reason #
# -------- ------------- --------------------------------------#
# 05/17/08 Siva Kumar Initial build #
####################################################################
if [ `uname -s` = 'SunOS' ]
then
USER=`/usr/xpg4/bin/id -u`
REALUSER=`/bin/who am i`
else
USER=`id -u`
REALUSER=`/usr/bin/who am i`
fi
if [ $USER -ne 0 ]
then
echo 'You need to ROOT - please'
exit 10
fi
LOG=/opt/sa/log/VCSCheck.log
mkdir -p /opt/sa/log
HOST=`hostname`
echo 'Host Name : ' $HOST >> $LOG
echo `date` >> $LOG
echo '************************************' >> $LOG
echo 'Real User Executed this scripts is ' $REALUSER >> $LOG
echo 'Command :' $0 $1 >> $LOG
HASTATUS=/opt/VRTS/bin/hastatus
HAGRP=/opt/VRTS/bin/hagrp
GREP=/usr/bin/grep
HACONF=/opt/VRTS/bin/haconf
SGS=/tmp/`basename $0`$$
case $1 in
status)
#Find Service Group Name
$HAGRP -display |grep -w Frozen |grep -v ClusterService |awk '{print $1}' > $SGS
for i in `cat $SGS`
do
ServiceGroup=`$HAGRP -display $i |grep -w Frozen |grep -v ClusterService |awk '{print $1}'`
Frozen=`$HAGRP -display $i |grep -w Frozen |grep -v ClusterService |awk '{print $4}'`
if [ $Frozen -eq 0 ]
then
echo 'Service Group ' $ServiceGroup ' is Not Frozen'
echo 'Service Group ' $ServiceGroup ' is Not Frozen' >> $LOG
else
echo 'Service Group ' $ServiceGroup ' is Frozen'
echo 'Service Group ' $ServiceGroup ' is Frozen' >> $LOG
fi
done
;;
freeze)
#Find Service Group Name
$HAGRP -display |grep -w Frozen |grep -v ClusterService |awk '{print $1}' > $SGS
for i in `cat $SGS`
do
ServiceGroup=`$HAGRP -display $i |grep -w Frozen |grep -v ClusterService |awk '{print $1}'`
Frozen=`$HAGRP -display $i |grep -w Frozen |grep -v ClusterService |awk '{print $4}'`
sleep 2
if [ $Frozen -eq 0 ]
then
$HACONF -makerw
$HAGRP -freeze $i -persistent
$HACONF -dump -makero
echo 'Working ....'
sleep 8
echo 'Service Group' $i ' Frozen ' >> $LOG
else
echo 'Service Group' $i ' already in Frozen state ' >> $LOG
fi
done
;;
unfreeze)
#Find Service Group Name
$HAGRP -display |grep -w Frozen |grep -v ClusterService |awk '{print $1}' > $SGS
for i in `cat $SGS`
do
ServiceGroup=`$HAGRP -display $i |grep -w Frozen |grep -v ClusterService |awk '{print $1}'`
Frozen=`$HAGRP -display $i |grep -w Frozen |grep -v ClusterService |awk '{print $4}'`
sleep 2
if [ $Frozen -eq 0 ]
then
echo 'Service Group ' $i ' is Not Frozen' >> $LOG
else
$HACONF -makerw
$HAGRP -unfreeze $i -persistent
$HACONF -dump -makero
echo 'Working ....'
sleep 8
echo 'Service Group ' $i ' Un-Frozen' >> $LOG
fi
done
;;
*)
echo "Usage `basename $0` {status/freeze/unfreeze}"
;;
esac
echo '' >>$LOG
rm -f $SGS

1 comment:

govz said...

Thank You, Siva.. that was very useful !

Govif