
#!/bin/ksh
#set -x
#
# RtB: check snapvault lag on a snapvault filer
#
WARNINGLAG=25
MAILFILE=/tmp/snapmail.$$
SNAPCHECK=/tmp/snapcheck.$$
RECIPIENTS="gmnl-msscentral@atosorigin.com"
#RECIPIENTS="ronald.tenbroeke@atosorigin.com"

FILER=
VFILER=nlnafvslb01


#
# Check lag of regular filers
#

CheckLag()
{

ssh ${FILER} -n snapvault status | grep -v 'Uninitialized'|grep ':' >> $SNAPCHECK
ssh ${FILER} -n snapvault status | grep 'restart checkpoint'|grep ':' >> $SNAPCHECK

while read line
do
  # get lag in hours
  lag=`echo $line |awk '{print $4}'`
  hour=`echo $lag|cut -d : -f1`

  # destination and source qtree
  srcqtree=`echo $line | awk '{print $1}'`
  destqtree=`echo $line | awk '{print $2}'`

  state=`echo $line | awk '{print $3}'`
  status=`echo $line | awk '{print $5}'`

  # remove leading 0 in two digit field
  zero=`echo $hour|cut -c1`
  if [ "$zero" = "0" ]; then
    hour=`echo $hour|cut -c2`
  fi

#compare lag to threshold
  if test "$hour" = "-" || test "$hour" -gt ${WARNINGLAG}
  then

     reason=`ssh $FILER -n snapvault status -l $destqtree | grep 'Current Transfer Error:' | cut -d: -f2`

printf "$destqtree \t Lag: $lag \t Error:$reason \t Status: $status \n" >> $MAILFILE

  fi
done < $SNAPCHECK

}

#
# Check lag of virtual filers
#

CheckVLag()
{

case ${VFILER} in
	nlnafvslb01)	RFILER=nlnaf02 ;;
	*)		echo "Invalid vfiler ${VFILER}" >>$MAILFILE ;;
esac

ssh ${RFILER} -n vfiler run ${VFILER} snapvault status | grep -v 'Uninitialized'|grep ':' >> $SNAPCHECK
ssh ${RFILER} -n vfiler run ${VFILER} snapvault status | grep 'restart checkpoint'|grep ':' >> $SNAPCHECK

while read line
do
  # get lag in hours
  lag=`echo $line |awk '{print $4}'`
  hour=`echo $lag|cut -d : -f1`

  # destination and source qtree
  srcqtree=`echo $line | awk '{print $1}'`
  destqtree=`echo $line | awk '{print $2}'`

  state=`echo $line | awk '{print $3}'`
  status=`echo $line | awk '{print $5}'`

  # remove leading 0 in two digit field
  zero=`echo $hour|cut -c1`
  if [ "$zero" = "0" ]; then
    hour=`echo $hour|cut -c2`
  fi

#compare lag to threshold
  if test "$hour" = "-" || test "$hour" -gt ${WARNINGLAG}
  then

     reason=`ssh ${RFILER} -n vfiler run ${VFILER} snapvault status -l $destqtree | grep 'Current Transfer Error:' | cut -d: -f2`

printf "$destqtree \t Lag: $lag \t Error:$reason \t Status: $status \n" >> $MAILFILE

  fi
done < $SNAPCHECK

}


if [ -z $FILER ]
then
	break
else
   CheckLag
fi


if [ -z $VFILER ]
then
	break
else
   CheckVLag
fi

if [ -s $MAILFILE ]; then
  mailx -s ":nlxfsd01: Snapvault threshold exceeded" ${RECIPIENTS} < ${MAILFILE}
fi

rm -f $SNAPCHECK > /dev/null 2>&1
rm -f $MAILFILE > /dev/null 2>&1

