#!/bin/sh #/* ********************************************************* ** #** Copyright (c) 2015 by Hitachi Data Systems ** #** All rights reserved. ** #** ********************************************************* */ # # OST Audit script, executed only on an NBU Media server configured # for the HDS HPP S-series system or Sepaton S2100. # VERSION="1.0.8" LOGFILE=MediaServer_`hostname`.log OS=`uname -s` NBUHOME=/usr/openv/netbackup STORAGETYPES="SEPATON HPP-S HPP-V" # Check OS of server. Only valid on Linux (RedHat/SuSE/CentOS) and Solaris (10 and 11) case $OS in Linux ) ECHO="/bin/echo -e" ;; SunOS ) ECHO="/usr/bin/echo" ;; * ) echo "[ERROR] Unsupported operating system: $OS" | tee -a ${LOG} ; exit 1 ;; esac # Make sure we know where the NetBackup utilities are PATH=$PATH:${NBUHOME}/bin:${NBUHOME}/bin/admincmd:/usr/openv/volmgr/bin export PATH # # Make sure we can write to the log file; if not, print error message and exit. /bin/touch ${LOGFILE} 2>&- if [ $? -ne 0 ] then $ECHO "ERROR: Unable to write to log file '${LOGFILE}'. Exitting." exit 1 fi $ECHO "Creating log file:" ${LOGFILE} $ECHO "Gathering general information about the node." ( $ECHO $ECHO "===============================" $ECHO "== General node information:" $ECHO "===============================" $ECHO ) >> ${LOGFILE} 2>&1 # # # ( $ECHO "Media Server name: \c" hostname 2>&1 $ECHO "Date: \c" date $ECHO $ECHO "Kernel info: \c" uname -a 2>&1 $ECHO ) >> ${LOGFILE} 2>&1 # # # $ECHO "Gathering general information about NBU: \c" # # $ECHO "version\c" ( $ECHO "NBU Version: \c" bpgetconfig | grep VERSIONINFO 2>&1 $ECHO ) >> ${LOGFILE} 2>&1 # # ( $ECHO "Disk Pool System (DSP) default receive time-out (DPS_PROXYDEFAULTRECVTMO): \c" DPS="${NBUHOME}/db/config/DPS_PROXYDEFAULTRECVTMO" if [ -f "$DPS" -o -h "$DPS" ] then cat $DPS else $ECHO "" fi $ECHO ) >> ${LOGFILE} 2>&1 # # ( $ECHO "Number of data buffers (NUMBER_DATA_BUFFERS): \c" BUF="${NBUHOME}/db/config/NUMBER_DATA_BUFFERS" if [ -f "$BUF" -o -h "$BUF" ] then cat $BUF else $ECHO "" fi $ECHO ) >> ${LOGFILE} 2>&1 # # ( SIZ="${NBUHOME}/db/config/SIZE_DATA_BUFFERS" $ECHO "Size of data buffers (SIZE_DATA_BUFFERS): \c" if [ -f "$SIZ" -o -h "$SIZ" ] then cat $SIZ else $ECHO "" fi $ECHO ) >> ${LOGFILE} 2>&1 # # $ECHO ", retention levels\c" ( $ECHO "======================" $ECHO "== Retention levels:" $ECHO "======================" /usr/openv/netbackup/bin/admincmd/bpretlevel -L $ECHO ) >> ${LOGFILE} 2>&1 # # # $ECHO ", SLP config parameters\c" ( $ECHO $ECHO "======================" $ECHO "== SLP parameters: " $ECHO "======================" $ECHO bpgetconfig | grep SLP 2>&1 $ECHO ) >> ${LOGFILE} 2>&1 # # # # $ECHO ", STU info\c" ( $ECHO $ECHO "==========================================================" $ECHO "== List all Storage Units and then the details of each:" $ECHO "==========================================================" $ECHO ${NBUHOME}/bin/admincmd/bpstulist 2>&1 $ECHO ${NBUHOME}/bin/admincmd/bpstulist -L 2>&1 $ECHO ) >> ${LOGFILE} 2>&1 # # # $ECHO ", polling\c" ( $ECHO $ECHO "===========================" $ECHO "== Media server polling: " $ECHO "===========================" $ECHO ${NBUHOME}/bin/admincmd/bperror -disk | grep -i monitor 2>&1 $ECHO ) >> ${LOGFILE} 2>&1 # # # $ECHO ", FC devices \c" ( $ECHO $ECHO "============================================" $ECHO "== FC devices discovered by Media server:" $ECHO "============================================" $ECHO case $OS in Linux ) cat /proc/scsi/scsi | grep OST -B 1 | grep Lun | wc -l ;; SunOS ) cfgadm -al 2>&1 ;; esac $ECHO ) >> ${LOGFILE} 2>&1 $ECHO "[DONE]" # # # $ECHO "Gathering OST-specific information: \c" # # # $ECHO "plugin version\c" ( $ECHO $ECHO "=====================================" $ECHO "== Sepaton/HPP OST Plugin Version" $ECHO "=====================================" $ECHO ##${NBUHOME}/bin/admincmd/bpstsinfo -plugin | grep -A 5 SEPATON 2>&1 #bpstsinfo -plugininfo | grep -A 5 SEPATON 2>&1 #bpstsinfo -plugininfo | sed -e '/Prefix: SEPATON/,/Vendor Version:/p' -e 'd' for PI in ${STORAGETYPES} do echo "[Storage Server Type = $PI]" bpstsinfo -plugininfo -serverprefix $PI | grep -v 'Plugin Info:' | grep -v 'Plugin Name:' echo done $ECHO ) >> ${LOGFILE} 2>&1 # # # $ECHO ", storage servers\c" ( $ECHO "==========================================================================" $ECHO "== OST Storage Server Status for storage types: ${STORAGETYPES}"S $ECHO "==========================================================================" $ECHO #${NBUHOME}/bin/admincmd/nbdevquery -liststs 2>&1 #nbdevquery -liststs 2>&1 #$ECHO for PI in ${STORAGETYPES} do echo "[Storage Server Type = $PI]" nbdevquery -liststs -stype $PI -U 2>&1 echo done $ECHO ) >> ${LOGFILE} 2>&1 # # # $ECHO ", disk pools\c" ( $ECHO "==========================================================================" $ECHO "== OST Disk Pool stats for storage types: ${STORAGETYPES}" $ECHO "==========================================================================" $ECHO #${NBUHOME}/bin/admincmd/nbdevquery -listdp 2>&1 #nbdevquery -listdp 2>&1 #$ECHO for PI in ${STORAGETYPES} do echo "[Storage Server Type = $PI]" nbdevquery -listdp -stype $PI -U 2>&1 echo done $ECHO ) >> ${LOGFILE} 2>&1 # # # $ECHO ", disk volumes \c" ( $ECHO "==========================================================================" $ECHO "== OST Disk Volume stats for storage types: ${STORAGETYPES}" $ECHO "==========================================================================" $ECHO #${NBUHOME}/bin/admincmd/nbdevquery -listdv 2>&1 #$ECHO for PI in ${STORAGETYPES} do echo "[Storage Server Type = $PI]" ${NBUHOME}/bin/admincmd/nbdevquery -listdv -stype $PI -U 2>&1 echo done $ECHO ) >> ${LOGFILE} 2>&1 $ECHO "[DONE]" $ECHO "[DONE]" >> ${LOGFILE} exit 0