I run a report every day to check for Frozen tapes...
I hope it helps ...
#!/bin/ksh
#
#
###############################################################################
#
# Name: tapecheck.ksh
# Purpose: This script checks all tapes and will LISTot any Frozen.
#
# Modified by: Steve Staves
# Date Created: April 2nd, 2003
# Date Modified: Jul 30th, 2003
#
###############################################################################
#
# Set up variables
TMPF1=d:/veritas/ScriptFiles/Check_Tapes_Frozen/tapelist.txt
TMPF2=d:/temp/tapelist1.txt
LIST=d:/veritas/backupresults/Frozen_Tapes.txt
HIST=//sherlock/LISTorts/Veritas/Frozen_Tapes/Frozen_Tapes.txt
###############################################################################
#
# Remove temp files
if [ -f $TMPF1 ];then
rm $TMPF1
fi
if [ -f $TMPF2 ];then
rm $TMPF2
fi
if [ -f $LIST ];then
rm $LIST
fi
echo " FROZEN Tape LISTort for `date`" > $LIST
echo "========================================================================== " >> $LIST
echo "" >> $LIST
cat $TMPF1 | grep " " | grep -v "last" > $TMPF2
cat $TMPF2 | while read line
do
Print=no
if [ "$(echo $line | awk '{print $1}')" = "Server" ]
then
#ServerName=$(echo $line | awk '{print $4}' | vis)
ServerName=$(echo $line | awk '{print $4}' )
fi
TapeNumber1=$(echo $line | awk '{print $1}') # Tape number, if valid
if [ "$(echo $line | grep FROZEN 1>/dev/null 2>&1 ; echo $?)" = "0" ]
then
if [ "$(echo $line | grep SUSPENDED 1>/dev/null 2>&1 ; echo $?)" = "0" ]
then
TapeState="Frozen Suspended"
Print=yes
else
TapeState="Frozen"
Print=yes
fi
else
if [ "$(echo $line | grep SUSPENDED 1>/dev/null 2>&1 ; echo $?)" = "0" ]
then
TapeState="Suspended"
Print=yes
fi
fi
if [ "${Print}" = "yes" ]
then
echo "Server name: ${ServerName}\tTape number: ${TapeNumber2}\tTape State: ${TapeState}" >> ${LIST}
echo "${ServerName} ${TapeNumber2} ${TapeState}" >> ${HIST}
fi
TapeNumber2=${TapeNumber1}
done
exit