#!/usr/bin/ksh #---------------------------------------------------------------------- # Keith G. Deems # Check drives, bring drive up if down, email Staff # If drives are up, do not create a report, runs from cron #---------------------------------------------------------------------- # # Modified by DSK on 2/19/03 to only send out if drive is down. Also major cleanup. # LG4 added code below to up the downed drive. # 04 Jun 2006 -- Dwilder -- added external media server list. # 16 Apr 2007 -- dwilder -- Added function to check for active ltid and log if not active. # # Add interested parties below: someone_who_cares=someone@somewhere.com # The report temp file goes here DRIVELOG=/tmp/drivelog # get the list of servers to test. # We manually create a file containing the mediaservers we want to monitor called "media_server_list" # and comment out a server when we have one offline for an extended time. server_list=`grep -v '^#' /usr/openv/nbu_scripts/media_server_list` # If you want to automatically select all your mediaservers comment out the above line and uncomment the below line: #server_list=`/usr/openv/netbackup/bin/admincmd/nbemmcmd -listhosts | egrep "^(media |master )" | awk '{print $2}'` # cleanup previous run file rm -f ${DRIVELOG} # begin loop of servers to check for f in ${server_list}; do { # Test to see if the ltid process is active on the server test_server=`/usr/openv/volmgr/bin/vmoprcmd -h $f -d ds 2>&1 | grep "not active"` if [ ! -z $test_server ] then /usr/bin/date >> ${DRIVELOG} echo " " >> ${DRIVELOG} echo " " >> ${DRIVELOG} echo "The Media Manager device daemon (ltid) is not active on host ${f}" >> ${DRIVELOG} else { # Get the status of any down drives on the server status=`/usr/openv/volmgr/bin/vmoprcmd -h $f -d ds | grep "DOWN" 2>&1` if [ ! -z $status ] then /usr/bin/date >> ${DRIVELOG} echo " " >> ${DRIVELOG} echo " " >> ${DRIVELOG} echo "Please check drives on MASTER: ${f}" >> ${DRIVELOG} echo "Drv Type Control User Label RecMID ExtMID Ready Wr.Enbl. ReqId" >> ${DRIVELOG} echo "${status} " >> ${DRIVELOG} echo "Attempting to place drive(s) in UP status" >> ${DRIVELOG} echo "" >> ${DRIVELOG} for i in `/usr/openv/volmgr/bin/vmoprcmd -h $f -d ds | tail +5 | grep "DOWN"|awk '{print $1}'` do /usr/openv/volmgr/bin/vmoprcmd -h $f -up $i >> ${DRIVELOG} 2>&1 done echo "" >> ${DRIVELOG} echo "Drive status (all drives should have UP status):" >> ${DRIVELOG} /usr/openv/volmgr/bin/vmoprcmd -h $f -d ds >> ${DRIVELOG} fi } fi # active ltid? } done ## send report if it has content MDATE=`date +%d-%b-%Y` if [ -s ${DRIVELOG} ] then echo " " >> ${DRIVELOG} echo " " >> ${DRIVELOG} cat ${DRIVELOG} | /usr/bin/mailx -s "NBU Tape Drive Status Report - ${MDATE}" ${someone_who_cares} fi # EOF