#!/bin/ksh # # Tape usage report by Robot - Works for multiple Robots, robot types # Slave servers, media types. Must be run on NetBackup Master server # #================================================================= # # Establish whether this is a Master or Slave server # -------------------------------------------------- # PATH=$PATH:/usr/openv/netbackup/bin PATH=$PATH:/usr/openv/netbackup/bin/admincmd PATH=$PATH:/usr/openv/netbackup/bin/goodies PATH=$PATH:/usr/openv/volmgr/bin daemon_running=$(bpps |grep bprd |grep -v grep) if [ "N${daemon_running}" = "N" ] then echo "" echo "NetBackup Request Daemon not running" echo "" echo "This command MUST be run on the master server" echo "" exit 1 fi echo "" echo "*****************" echo "TAPE USAGE REPORT" echo "*****************" echo "" no_media_types=$(vmquery -bx -a |tail +4 |awk '{print $2}' |sort -u |wc -l) # For each robot 1st bpstulist -U |grep "Robot Type/Number" |sort -u +4 |awk '{print $3 "(" $5 ")"}' |while read robot do echo "Robot ${robot}" echo "============" echo "" if [ ${no_media_types} -gt 1 ] then printf "%-12s %-22s %16s %16s \n" "Media Type" "Volume Pool" "Scratch in Robot" "Total Tapes" printf "%-12s %-22s %16s %16s \n" "----------" "-----------" "----------------" "-----------" else printf "%-22s %16s %16s \n" "Volume Pool" "Scratch in Robot" "Total Tapes" printf "%-22s %16s %16s \n" "-----------" "----------------" "-----------" fi robnumb=$(echo ${robot} |awk -F\( '{print $NF}' |awk -F\) '{print $1}') for media_type in `vmquery -bx -rn ${robnumb} |tail +4 |awk '{print $2}' |sort -u` do vmpool -listall -b 2>/dev/null |tail +3 |awk '{print $1}' |while read pool do total=0 avail=0 vmquery -bx -pn ${pool} 2>/dev/null |tail +4 |grep "${media_type} " |while read line do assigned=`echo $line |awk '{print $12}' ` inrob=`echo $line |awk '{print $4}' ` if [ "Y${inrob}" = "Y${robnumb}" ] then if [ "Y${assigned}" = "Y---" ] then avail=$(expr ${avail} + 1) fi total=$(expr ${total} + 1) fi done if [ ${avail} -ne 0 ] || [ ${total} -ne 0 ] then if [ ${no_media_types} -gt 1 ] then printf "%-12s %-22s %16d %16d \n" ${media_type} ${pool} ${avail} ${total} else printf "%-22s %16d %16d \n" ${pool} ${avail} ${total} fi fi done done echo "" echo "" done echo "Tapes out of Robots" echo "===================" echo "" if [ ${no_media_types} -gt 1 ] then printf "%-12s %-22s %16s %16s \n" "Media Type" "Volume Pool" "Scratch" "Total Tapes" printf "%-12s %-22s %16s %16s \n" "----------" "-----------" "-------" "-----------" else printf "%-22s %16s %16s \n" "Volume Pool" "Scratch" "Total Tapes" printf "%-22s %16s %16s \n" "-----------" "-------" "-----------" fi for media_type in `vmquery -bx -rn ${robnumb} |tail +4 |awk '{print $2}' |sort -u` do vmpool -listall -b 2>/dev/null |tail +3 |awk '{print $1}' |while read pool do total=0 avail=0 vmquery -bx -pn ${pool} 2>/dev/null |tail +4 |grep "${media_type} " |while read line do assigned=`echo $line |awk '{print $12}' ` inrob=`echo $line |awk '{print $4}' ` if [ "Y${inrob}" = "Y-" ] then if [ "Y${assigned}" = "Y---" ] then avail=$(expr ${avail} + 1) fi total=$(expr ${total} + 1) fi done if [ ${avail} -ne 0 ] || [ ${total} -ne 0 ] then if [ ${no_media_types} -gt 1 ] then printf "%-12s %-22s %16d %16d \n" ${media_type} ${pool} ${avail} ${total} else printf "%-22s %16d %16d \n" ${pool} ${avail} ${total} fi fi done done echo "" echo "" exit 0