#!/bin/bash
#< Check for Netbackup frozen media and expire them
AWK="/usr/local/bin/awk"
ECHO="/usr/bin/echo"
GREP="/usr/bin/grep"
WC="/usr/bin/wc"
YES="/usr/bin/yes"
NETBACKUP_HOME="/usr/openv/netbackup"
NETBACKUP_BIN="${NETBACKUP_HOME}/bin"
NETBACKUP_ADMIN="${NETBACKUP_BIN}/admincmd"
NETBACKUP_GOODIES="${NETBACKUP_BIN}/goodies"
AVAILABLE_MEDIA="${NETBACKUP_GOODIES}/available_media"
BPEXPDATE="${NETBACKUP_ADMIN}/bpexpdate"
function print_error {
${ECHO} "Error: $@" >&2
}
function confirm {
${ECHO} "$@ [y/n] \c"
read RESPONSE
case ${RESPONSE} in
y|Y|[Yy][Ee][Ss]) return 0 ;;
* ) return 1 ;;
esac
}
function expire_frozen_media {
${ECHO} "Searching for frozen media - please wait..."
FROZEN_MEDIA_IDS=$( ${AVAILABLE_MEDIA} | ${GREP} "FROZEN" | ${AWK} '{print $1}' )
if [ "${FROZEN_MEDIA_IDS}" = "" ]; then
print_error "No frozen media found" && exit 1
fi
${ECHO} "The following frozen media were found:"
${ECHO} "${FROZEN_MEDIA_IDS}"
confirm "Are you sure you want to exipre all frozen media?"
if [ "$?" -ne "0" ]; then
${ECHO} "Aborting at user request" && exit 0
fi
${ECHO} "${FROZEN_MEDIA_IDS}" | while read MEDIA_ID; do
${ECHO} "Expiring media ID ${MEDIA_ID}"
${YES} | ${BPEXPDATE} -m ${MEDIA_ID} -d 0
${ECHO}
done
}
expire_frozen_media
exit 0