#!/usr/bin/bash
#< Detailed NetBackup report designed to be scheduled daily via cron
# Configure Paths
NBROOT="/usr/openv/netbackup"
NBBIN="${NBROOT}/bin"
NBADMIN="${NBBIN}/admincmd"
NBGOODIES="${NBBIN}/goodies"
# Executables
BPAVAIL="${NBGOODIES}/available_media"
BPERROR="${NBADMIN}/bperror"
AWK="/usr/local/bin/awk"
DATE="/usr/bin/date"
ECHO="/usr/bin/echo"
GREP="/usr/bin/grep"
PRINTF="/usr/bin/printf"
SED="/usr/bin/sed"
# Other vars
DIVIDER1="================================================================================"
TODAY=$( ${DATE} +"%d/%m/%Y %H:%M" )
function print_header {
${ECHO} "${DIVIDER1}"
printf "Daily backup report for: ${HOSTNAME}\t\tPrepared: ${TODAY}\n"
${ECHO} "${DIVIDER1}"
}
function get_backup_report {
${ECHO} "\n"
${ECHO} "==[ Backup Job Report ]=========================================================\n"
${BPERROR} -U -backstat -s info
${ECHO} "${DIVIDER1}"
}
function get_backup_detail {
${ECHO} "\n"
${ECHO} "==[ Backup Job Detail ]=========================================================\n"
${PRINTF} "%10s\t%10s\t%20s\t%s\n" "JOBID" "CLIENT" "DATA WRITTEN" "AVE. SPEED"
${PRINTF} "%10s\t%10s\t%20s\t%s\n" "-----" "------" "------------" "----------"
${BPERROR} -l -backstat | ${AWK} '{print $6, $9}' | while read JOBID CLIENT; do
DATA=$( ${BPERROR} -hoursago 24 | ${GREP} "${JOBID}.*success.*Kbytes" | ${SED} 's/^.* \([0-9][0-9]* Kbytes\) at \(.*\)$/\1|\2/' )
KBYTES=${DATA%%|*}
SPEED=${DATA##*|}
${PRINTF} "%10s\t%10s\t%20s\t%s\n" "${JOBID}" "${CLIENT}" "${KBYTES}" "${SPEED}"
done
${ECHO} "${DIVIDER1}"
}
function get_available_media {
${ECHO} "\n"
${ECHO} "==[ Media Availability ]========================================================\n"
${BPAVAIL} -summary
${ECHO} "${DIVIDER1}"
}
function get_errors {
${ECHO} "\n"
${ECHO} "==[ Error Report ]==============================================================\n"
ERROUT=$( ${BPERROR} -U -problems -s error 2>&1 )
if [ "${ERROUT}" = "no entity was found" ]; then
${ECHO} "No errors reported"
else
${ECHO} "${ERROUT}"
fi
${ECHO} "${DIVIDER1}"
}
print_header
get_backup_report
get_backup_detail
get_available_media
get_errors
exit 0