#!/bin/sh
# $Id: bp.inst.sh,v 1.164 2009/11/04 21:49:52 $
#******************************************************************************
# $Copyright: Copyright 1993 - 2009 Symantec Corporation, All Rights Reserved $
#******************************************************************************
RELEASE=7.0
MACHINE=LINUX_RH_X86
# INSERT fn.set_echo_var
#----- $Id: fn.set_echo_var,v 1.5 2007/12/13 15:10:03 $ -----
#
# This function is a case statement sets
# the ECHO variable
# with the appropriate path & flags.
#Define Echo to allow escape characters
case "`uname -s`" in
Darwin)
eoslevel=`uname -r | cut -f1 -d"."`
if [ "${eoslevel}" -ge "9" ] ; then
ECHO="echo"
else
ECHO="echo -e"
fi
;;
FreeBSD)
ECHO="echo -e"
;;
Linux*)
unset POSIXLY_CORRECT
ECHO="/bin/echo -e"
;;
SunOS*)
ECHO="/usr/bin/echo"
;;
*)
ECHO="echo"
;;
esac
# INSERT fn.prompt
#----- $Id: fn.prompt,v 1.2 2004/11/22 20:01:21 $ -----
# Prompt () - determines the flags to use to print
# a line without a newline char
#
# *** This function uses the set_echo_var function -${ECHO} to
# define the Prompt function.
#
# calling signature - Prompt "some string"
# return value - none
case "`${ECHO} 'x\c'`" in
'x\c')
Prompt()
{
${ECHO} -n "$*"
}
;;
x)
Prompt()
{
${ECHO} "$*\c"
}
;;
*)
Prompt()
{
${ECHO} -n "$*"
}
;;
esac
# INSERT fn.confirm
#----- $Id: fn.confirm,v 1.5 2004/11/22 20:01:21 $ -----
#
# confirm () - Takes three parameters:
# 1: "y" or "n" to be displayed as the default
# 2: a prompt string to be displayed to the user
# 3: help text string (optional)
#
# It is expected that the Trace_File variable
# has been set to a file or /dev/null.
#
# *** This function uses the Prompt function
# which uses the set_echo_var function - ${ECHO}.
#
# calling signature: confirm y "some string" [ "help text" ]
# or
# confirm n "some string" [ "help text" ]
#
# returns: 0 for Yes, 1 for No
confirm ()
{
help=${3}
Q=""
if [ -n "${help}" ]; then
Q=",?"
fi
Prompt "${2} [y,n${Q}] (${1}) "
valid=0
until [ ${valid} -ne 0 ]
do
#read ans and if it is empty, initialize it with the default
read ans
: ${ans:=${1}}
#write to the tracefile
${ECHO} ${ans} >> ${Trace_File}
case "${ans}" in
Y*|y*)
valid=1
return 0 ;;
N*|n*)
valid=1
return 1 ;;
?*)
${ECHO} ""
${ECHO} ${help}
${ECHO} ""
Prompt "${2} [y,n${Q}] (${1}) "
;;
*)
${ECHO} ""
Prompt "${ans} is invalid input. Enter [y,n${Q}] (${1}) "
;;
esac
done
}
# INSERT fn.set_tar_options
#----- $Id: fn.set_tar_options,v 1.13 2010/01/06 21:24:28 $ -----
#
# This function takes one parameter, a
# string which is the MACHINE or platform type.
# It sets two variables: TAR_C_OPTIONS and
# TAR_X_OPTIONS
#
# NOTE: The v flag is not handled in this function. If you want
# to add the v flag, you need to set it in your scripts.
# For example, place the v before the variable like so, v${TAR_X_OPTIONS}.
#
# calling signature:
# set_tar_options "MachineType"
set_tar_options ()
{
case "${1}" in
HP* | hp* )
TAR_C_OPTIONS="cfA"
#c - create new archive
#f - use given filename
#A - suppress warning messages for ACL entries
TAR_X_OPTIONS="xpfA"
#x - extract
#p - use original tarred file protection properties
#f - use given filename
#A - suppress warning messages for ACL entries
;;
* )
TAR_C_OPTIONS="cf"
#c - create new archive
#f - use given filename
TAR_X_OPTIONS="xpf"
#x - extract
#p - use original tarred file protection propeties
#f - use given filename
;;
esac
}
Normal_Exit () {
if [ $INSTALL_NETBACKUP = 1 ] ; then
if [ -d ${NB_DIR} ] ; then
if [ ! -d ${NB_DIR}/logs/user_ops ] ; then
mkdir -p ${NB_DIR}/logs/user_ops
fi
chmod 755 ${NB_DIR}/logs
chmod 777 ${NB_DIR}/logs/user_ops
chgrp bin ${NB_DIR}/logs ${NB_DIR}/logs/user_ops
fi
fi
${ECHO} "
Done executing `basename $0`.
If you ran `basename $0` instead of /install, you must
run /usr/openv/netbackup/bin/install_bp to initiate NetBackup."
exit 0
}
# Remove possible stale links on the inactive nodes
# of a NetBackup cluster. On the active node, create
# the links to the shared disk.
Cluster_Clean()
{
# Check if on a cluster.
RSP=${NB_BIN}/cluster/NBU_RSP
if [ -f ${RSP} ] ; then
# If the shared directory is not visible, we're on the
# inactive node.
SHARED_DISK=`grep SHARED_DISK ${RSP} | sed -e s/SHARED_DISK// | \
sed -e s/=// | sed 's/\..*$//'| sed -e s/' '//g`
if [ ! -d ${SHARED_DISK}/netbackup/db/images ] ; then
for link in ${DB_DIR}/var ${NB_DIR}/db \
${VM_DIR}/misc/robotic_db /usr/openv/var/global
do
if [ -h ${link} ] ; then
rm -f ${link}
fi
done
else
for link in netbackup/db volmgr/misc/robotic_db var/global
do
if [ ! -h /usr/openv/${link} -a -d ${SHARED_DISK}/${link} ] ; then
ln -s ${SHARED_DISK}/${link} /usr/openv/${link}
fi
done
fi
fi
}
# tar commands used on the local host
Transfer_Product ()
{
File=$1
if [ $IS_HP = 1 ] ; then
ls -R $File > /dev/null 2>&1
fi
gunzip -c ${File} | ${TAR} v${SPEC_TAR_OPT}${TAR_X_OPTIONS} -
if [ $? -ne 0 ]; then
${ECHO} "$TAR failed. Aborting ..."
exit 1
fi
}
# Check if the normal install location is acceptable.
# Create the ln if it is not
Confirm_Location () {
Product=$1
if [ -d ${ROOT_INST_DIR} ] ; then
${ECHO} "The existing ${ROOT_INST_DIR} directory will be used for ${Product}."
sleep 1
# /usr/openv exists but not /usr/openv/netbackup/version.
# Could be a client being upgraded to a server. We need
# full size so pass in multiplier and divisor of 5.
upgrade_space_check 5 5
if [ $? -eq 1 ] ; then
if confirm n "Do you want to install NetBackup and Media Manager files?"
then
:
else
exit 1
fi
fi
else
SpaceNeeded=0
if [ -f ${CALL_path}/.sizes ] ; then
. ${CALL_path}/.sizes
SpaceNeeded=$NBSize
fi
if [ ! -d /usr/openv ] ; then
Space=`(cd /usr; $DF . | tail -1 | eval "${awk_command}")`
else
Space=`(cd /usr/openv; $DF . | tail -1 | eval "${awk_command}")`
fi
if [ $Space -lt $SpaceNeeded -a $SpaceNeeded != 0 ] ; then
${ECHO} "
There are $Space kbytes of space left in ${ROOT_INST_DIR}.
You will need about $SpaceNeeded kbytes of space to install $Product."
NeedSpace=yes
else
if confirm y "Is it OK to install in ${ROOT_INST_DIR}?"
then
mkdir -p ${ROOT_INST_DIR}
chmod 755 ${ROOT_INST_DIR}
NeedSpace=no
else
NeedSpace=yes
fi
fi
while [ $NeedSpace = yes ]
do
gotDir="no"
${ECHO} "You must install in /BASEDIR/openv.
"
while [ "${gotDir}" = "no" ]
do
Prompt "Specify BASEDIR in /BASEDIR/openv or q to quit: "
read INST_ROOT
${ECHO} ${INST_ROOT} >> ${Trace_File}
: ${INST_ROOT:=NoInput}
if [ "${INST_ROOT}" != "NoInput" ] ; then
if [ "${INST_ROOT}" = "q" -o "${INST_ROOT}" = "Q" ] ; then
${ECHO} "
You have chosen to exit this installation."
# This needs to be non-zero or cdrom_install
# will think bp.inst finished normally and
# try to proceed and run install_bp.
exit 1
else
# Get rid of multiple slashes, make sure
# we start with one, and don't end with one.
INST_ROOT=`${ECHO} /${INST_ROOT} | sed -e "s;/*/;/;g"`
if [ "${INST_ROOT}" != "/" ] ; then
#remove a trailing /, plan to add it later
INST_ROOT=`${ECHO} ${INST_ROOT} | sed -e "s;/*$;;"`
fi
if [ ! -d "$INST_ROOT" ] ; then
${ECHO} "
$INST_ROOT is not a directory on this machine."
continue
fi
fi
gotDir="yes"
fi
done
Space=`(cd "$INST_ROOT"; $DF . | tail -1 | eval "${awk_command}")`
if [ $Space -lt $SpaceNeeded ] ; then
${ECHO} "
$INST_ROOT is not large enough to install $Product.
There are $Space kbytes of space available on $INST_ROOT and
will need about $SpaceNeeded kbytes of space to install $Product."
continue
else
NeedSpace=no
fi
if [ "${INST_ROOT}" = "/" ] ; then
INST_ROOT=${INST_ROOT}openv
else
INST_ROOT=${INST_ROOT}/openv
fi
# Remove possible bad /usr/openv link before
# creating INST_ROOT (which could be /usr/openv).
if symlink /usr/openv
then
rm -f /usr/openv
fi
if [ ! -d ${INST_ROOT} ] ; then
mkdir ${INST_ROOT}
chmod 755 ${INST_ROOT}
fi
if [ "${INST_ROOT}" != "/usr/openv" ] ; then
${ECHO} "Creating link from /usr/openv to ${INST_ROOT}"
ln -s ${INST_ROOT} /usr/openv
fi
done
fi
}
# Assumes /usr/openv exists either as a real directory or a symbolic
# link. SpaceNeeded will be based off a percentage of what's in .sizes.
# This function expects to be passed a multiplier and a divisor.
upgrade_space_check ()
{
mult=${1}
div=${2}
SpaceNeeded=0
if [ -f ${CALL_path}/.sizes ] ; then
. ${CALL_path}/.sizes
SpaceNeeded=`expr \( ${NBSize} \* ${mult} \) / ${div}`
fi
Space=`(cd /usr/openv; ${DF} . | tail -1 | eval "${awk_command}")`
if [ ${Space} -lt ${SpaceNeeded} -a ${SpaceNeeded} != 0 ] ; then
${ECHO} "
There are ${Space} kbytes of space left in /usr/openv. You will need about
${SpaceNeeded} kbytes of space to install NetBackup and Media Manager. Refer
to the NetBackup Release Notes for UNIX, Windows and Linux for the most current
information on the minimum binary size requirements of NetBackup software for
each supported platform and operating system.
"
return 1
fi
return 0
}
# True if argument is a symbolic link, false otherwise.
symlink()
{
ls -ld "${1}" 2>/dev/null | grep "^l" > /dev/null
}
# Create the empty client directories the GUIs use for client definitions.
#
# Input
# $1 Hardware class
# $2 OS class
create_empty ()
{
for cdir in ${1} ${1}/${2}
do
if [ ! -d ${NB_CLIENT_DIR}/${cdir} ] ; then
mkdir ${NB_CLIENT_DIR}/${cdir}
chmod 755 ${NB_CLIENT_DIR}/${cdir}
fi
chgrp bin ${NB_CLIENT_DIR}/${cdir}
done
}
##################### MAIN ####################
NB_TAR_FILE=NetBackup.tar.gz
VM_TAR_FILE=Volume_Manager.tar.gz
ROOT_INST_DIR=/usr/openv
NB_DIR=/usr/openv/netbackup
NB_BIN=/usr/openv/netbackup/bin
VM_DIR=/usr/openv/volmgr
VM_BIN=/usr/openv/volmgr/bin
NB_CLIENT_DIR=/usr/openv/netbackup/client
SHARE_DIR=/usr/openv/share
DB_DIR=/usr/openv/db
MSG_DIR=/usr/openv/msg
CWD=`pwd`
MYNAME=`basename $0`
CALL_path=`dirname $0`
# Make sure this is being run from root.
ISROOT=`id | egrep "^uid=0\("`
if [ "${ISROOT}" = "" ] ; then
${ECHO} "
$MYNAME must be run while logged in as root.
"
exit 1
fi
cd $CALL_path
CALL_path=`pwd`
cd ../../anb
ServerDir=`pwd`
cd ../../
CdromDir=`pwd`
cd $CWD
TAR=tar
SPEC_TAR_OPT=""
INSTALL_NETBACKUP=0
PATH=/bin:$PATH
Trace_File=$1
SaveBinaries=0
space_answer=y
IS_HP=0
Upgrade=0
set_tar_options ${MACHINE}
# awk_command is how to get the available space from df output.
awk_command="awk '{print \$4}'"
ManPath=/usr/openv/man/man1
HW_Class=${MACHINE}
DSO_SUFFIX='so'
clean_up_client=""
case "$MACHINE" in
HP*)
# Don't care if PA-RISC or an IA64 processor
DF="/usr/bin/df -b"
awk_command="awk '{print \$( NF - 2 )}'"
IS_HP=1
# Add the paths built into the shell as adding
# contrib causes other paths to be lost.
PATH="${PATH}:/usr/sbin:/usr/bin:/usr/contrib/bin"
OldManPath=""
ManPath=/usr/openv/man/man1m
if [ "${MACHINE}" = "HP-UX-IA64" ] ; then
clean_up_client=HP-UX11.31
else
clean_up_client="HP-UX11.11"
DSO_SUFFIX='sl'
fi
;;
LINUX*)
#-P option prevents line wrap on linux
DF="/bin/df -kP"
TAR=${CALL_path}/NB.file_trans
SPEC_TAR_OPT="a"
OldManPath=/usr/openv/man/man
HW_Class=Linux
clean_up_client="IBMpSeriesRedHat2.6 IBMpSeriesSuSE2.6 IBMzSeriesRedHat2.6 IBMzSeriesSuSE2.6 RedHat2.6"
;;
RS6000) DF="/usr/bin/df -k"
awk_command="awk '{print \$3}'"
OldManPath=/usr/openv/man/share
;;
SOLARIS* | XXXX*) ${ECHO} "Unknown hardware type
"
exit 1 ;;
esac
${ECHO} "
The NetBackup and Media Manager software is built for use on $MACHINE hardware."
if [ ! -f ${NB_DIR}/version ] ; then
if confirm y "Do you want to install NetBackup and Media Manager files?"
then
INSTALL_NETBACKUP=1
${ECHO} "
NetBackup and Media Manager are normally installed in ${ROOT_INST_DIR}."
Confirm_Location "NetBackup and Media Manager"
fi
else
OLD_RELEASE_LEVEL=`head -2 ${NB_DIR}/version | tail -1 | cut -f3 -d" "`
${ECHO} "
NetBackup is currently at release level ${OLD_RELEASE_LEVEL}.
This package will install release level ${RELEASE}."
if [ "${OLD_RELEASE_LEVEL}" = "$RELEASE" ] ; then
${ECHO} "
No server update is needed."
else
# If the major/minor version levels are the same between
# what we had and what we're installing (for example, 6.0Alpha
# and 6.0Beta), don't bother doing a space check.
#
# Have to do an extra check if the old version comes out
# to be 4.5. Need to distinguish between 4.5 and 4.5FP1. An
# underscore in the original value makes the difference
# (4.5GA vs 4.5FP_3GA). Only take the first two numbers as
# 3.4.1 is "equal" to 3.4.
old_level=`expr ${OLD_RELEASE_LEVEL} : '\([0-9.]*\)'`
short_old_level=`${ECHO} ${old_level} | cut -f1,2 -d"."`
if [ "${old_level}" = "4.5" ] ; then
${ECHO} ${OLD_RELEASE_LEVEL} | grep "_" > /dev/null 2>&1
if [ $? -eq 0 ] ; then
old_level=`${ECHO} ${OLD_RELEASE_LEVEL} | cut -f1 -d"_"`
short_old_level=${old_level}
fi
fi
new_level=`expr ${RELEASE} : '\([0-9.]*\)'`
short_new_level=`${ECHO} ${new_level} | cut -f1,2 -d"."`
if [ "${short_old_level}" != "${short_new_level}" ] ; then
# Take 4/5 of the current size for a server upgrade.
upgrade_space_check 4 5
if [ $? -ne 0 ] ; then
space_answer=n
fi
fi
fi
if confirm ${space_answer} "Do you want to reinstall NetBackup and Media Manager?"
then
INSTALL_NETBACKUP=1
${ECHO} "NetBackup and Media Manager will be updated to release level $RELEASE."
if [ ! -s ${NB_DIR}/.upgrade.to.$RELEASE -a "${OLD_RELEASE_LEVEL}" != "$RELEASE" ] ; then
Upgrade=1
cp ${NB_DIR}/version ${NB_DIR}/.upgrade.to.$RELEASE
SaveBinaries=1
fi
fi
fi
# This needs to be non-zero or cdrom_install will think bp.inst finished
# normally and try to proceed and run install_bp.
if [ $INSTALL_NETBACKUP = 0 ] ; then
exit 1
fi
if [ $IS_HP = 1 ] ; then
ls -R ${CALL_path}/../../anb > /dev/null 2>&1
fi
# If nbinstck exists and fails, ask the override question.
if [ -f /usr/openv/netbackup/bin/goodies/nbinstck ] ; then
/usr/openv/netbackup/bin/goodies/nbinstck
if [ $? -ne 0 ] ; then
if confirm n "Do you wish to continue?"
then
:
else
exit 1
fi
fi
fi
# Find bp.kill_all. Could be in two possible spots depending
# on what's installed.
wheres_kill_all=""
if [ -f /usr/openv/netbackup/bin/bp.kill_all ] ; then
wheres_kill_all=/usr/openv/netbackup/bin
elif [ -f /usr/openv/netbackup/bin/goodies/bp.kill_all ] ; then
wheres_kill_all=/usr/openv/netbackup/bin/goodies
fi
# Kill the NetBackup and Media Manager processes here.
if [ -f ${wheres_kill_all}/bp.kill_all ] ; then
Trace_File=${Trace_File} ${wheres_kill_all}/bp.kill_all INSTALL
if [ $? = 2 ] ; then
${ECHO} "Cannot upgrade when NetBackup or Media Manager processes are running.
Was not successful in terminating NetBackup or Media Manager processes."
exit 1
fi
fi
if [ -d ${MSG_DIR} ] ; then
for entry in ${MSG_DIR}/*
do
if [ ! -d ${entry} ] ; then
continue
fi
if [ ! -d ${entry}.${OLD_RELEASE_LEVEL} -a $SaveBinaries = 1 ] ; then
${ECHO} ${entry} | grep "\.[0-9]\." > /dev/null
if [ $? = 1 ] ; then
${ECHO} "Saving ${entry} as ${entry}.${OLD_RELEASE_LEVEL}"
mv ${entry} ${entry}.${OLD_RELEASE_LEVEL}
fi
fi
done
fi
NB_SUBDIRS="help bin/goodies"
for nb_subdir in $NB_SUBDIRS
do
if [ ! -d ${NB_DIR}/${nb_subdir}.${OLD_RELEASE_LEVEL} -a -d ${NB_DIR}/${nb_subdir} -a $SaveBinaries = 1 ] ; then
${ECHO} "Saving .../netbackup/${nb_subdir} as ${nb_subdir}.${OLD_RELEASE_LEVEL}"
mv ${NB_DIR}/${nb_subdir} ${NB_DIR}/${nb_subdir}.${OLD_RELEASE_LEVEL}
if [ $? != 0 ]; then
${ECHO} "
Error moving ${NB_DIR}/${nb_subdir} to ${NB_DIR}/${nb_subdir}.${OLD_RELEASE_LEVEL}"
exit 1
fi
fi
done
NB_BINS="initbprd initbpdbm backup_exit_notify backup_notify bpend_notify bpend_notify_busy bpstart_notify dbbackup_notify diskfull_notify restore_notify session_notify session_start_notify userreq_notify"
for nb_binary in $NB_BINS
do
if [ ! -f ${NB_BIN}/${nb_binary}.${OLD_RELEASE_LEVEL} -a $SaveBinaries = 1 ] ; then
if [ -f ${NB_BIN}/${nb_binary} ] ; then
${ECHO} "Saving .../netbackup/bin/${nb_binary} as ${nb_binary}.${OLD_RELEASE_LEVEL}"
cp ${NB_BIN}/${nb_binary} ${NB_BIN}/${nb_binary}.${OLD_RELEASE_LEVEL}
fi
fi
done
# JNIs have moved to the client directory. The server
# directory should no longer be needed. Need to do this before
# client.inst as the old JNI was a symbolic link.
if [ -h /usr/openv/lib/libSigScheduleJNI.s? ] ; then
rm -f /usr/openv/lib/libSigScheduleJNI.s?
fi
rm -rf /usr/openv/lib/server
/bin/rm -f ${NB_BIN}/bp.inst ${NB_BIN}/cp_to_client ${NB_BIN}/ftp_to_client ${NB_BIN}/install_client
/bin/rm -rf ${NB_BIN}/goodies/support
VM_SUBDIRS="help"
for vm_subdir in $VM_SUBDIRS
do
if [ ! -d ${VM_DIR}/${vm_subdir}.${OLD_RELEASE_LEVEL} -a -d ${VM_DIR}/${vm_subdir} -a $SaveBinaries = 1 ] ; then
${ECHO} "Saving .../volmgr/${vm_subdir} as ${vm_subdir}.${OLD_RELEASE_LEVEL}"
cp -r ${VM_DIR}/${vm_subdir} ${VM_DIR}/${vm_subdir}.${OLD_RELEASE_LEVEL}
fi
done
VM_BINS="multihost_drive_notify drive_mount_notify drive_unmount_notify"
for vm_binary in ${VM_BINS}
do
if [ ! -f ${VM_BIN}/${vm_binary}.${OLD_RELEASE_LEVEL} -a $SaveBinaries = 1 ] ; then
if [ -f ${VM_BIN}/${vm_binary} ] ; then
${ECHO} "Saving .../volmgr/bin/${vm_binary} as ${vm_binary}.${OLD_RELEASE_LEVEL}"
cp ${VM_BIN}/${vm_binary} ${VM_BIN}/${vm_binary}.${OLD_RELEASE_LEVEL}
fi
fi
done
if [ $Upgrade = 1 ] ; then
# ${ECHO} "Removing obsolete files in ${VM_DIR}/"
ObsoleteVMfiles="database/ltidrives database/ltilocations bin/tc8d bin/tc8test help/robots/TC8 bin/tc4d bin/tc4test help/robots/TC4 help/tpconfig/tpconfigloc bin/vmconf bin/update_services version"
for file in $ObsoleteVMfiles
do
rm -rf ${VM_DIR}/${file}
done
for Obsoletelib in libACE.s? libACE_nmt.s? libSigFCL250ST.s? \
libSigSchedule250ST.s? libSigScheduleJNI250.s? libSigSchedule251ST.s? \
libTAO.s? libTAO_DynamicInterface.s? libTAO_IORTable.s? \
libTAO_PortableServer.s? libxerces-c1_4_nmt.s? libxml4c.s? \
libxml4c.s?.50 libxml4c.s?.50.0 libxml4c50.0.s? \
libxml4c50.s? libicudata.s?.22.0 libicudata22.0.s? \
libicudata.s?.22 libicudata.s? libicudata22.s? \
libicuuc.s?.22.0 libicuuc.s?.22 libicuuc.s? libicuuc22.s? \
libicuuc22.0.s?
do
rm -f /usr/openv/lib/${Obsoletelib}
done
rm -f ${ManPath}/bpfastrax.1m
rm -f ${NB_DIR}/MediaMgr_DeviceConfig_Guide.txt
rm -f ${NB_BIN}/client_config
# This removing of pl links part (the following 3 sections) only needs
# to be here if we allow upgrading from 4.5 to 6.0.
for Link in bppolicynew bpplclients bppldelete bpplexclude bpplinclude \
bpplinfo bppllist bpplsched bpplschedrep bpplschedwin bpplvalid
do
if symlink ${NB_BIN}/admincmd/${Link}
then
rm -f ${NB_BIN}/admincmd/${Link}
fi
done
for Link in bppolicynew. bpplclients. bppldelete. bpplinclude. \
bpplinfo. bppllist. bpplsched. bpplschedrep.
do
if symlink ${ManPath}/${Link}*
then
rm -f ${ManPath}/${Link}*
fi
done
if [ -h ${NB_BIN}/goodies/pltemplates ] ; then
rm -f ${NB_BIN}/goodies/pltemplates
fi
# Now that PSP is versioned in NB 6.0, clean up a few
# more libs.
for Obsoletelib in libvxACE.s? libvxACEST.s? libvxTAO.s? \
libvxTAO_DynamicInterface.s? libvxTAO_IORTable.s? \
libvxTAO_Messaging.s? libvxTAO_PortableServer.s? \
libvxUCS4_UTF16.s?
do
rm -f /usr/openv/lib/${Obsoletelib}
done
fi
#
# We moved the man pages. Clean up the old ones.
#
if [ "${OldManPath}" != "" ] ; then
rm -rf ${OldManPath}
fi
# Remove the old bpcl* commands and man pages. bppl* is all there is.
for bin in bpclassnew bpclclients bpcldelete bpclexclude bpclinclude \
bpclinfo bpcllist bpclsched bpclschedrep bpclschedwin bpclvalid
do
rm -f ${NB_BIN}/admincmd/${bin}
done
for file in bpclassnew. bpclclients. bpcldelete. bpclinclude. \
bpclinfo. bpcllist. bpclsched. bpclschedrep.
do
rm -f ${ManPath}/${file}*
rm -f ${NB_BIN}/goodies/man/${file}*
done
rm -f ${NB_BIN}/goodies/cltemplates
# As of 5.1, bpplexclude is gone for good.
rm -f ${NB_BIN}/admincmd/bpplexclude
# jbp no longer needs these special binaries
rm -f ${NB_BIN}/admincmd/bpadmbackup ${NB_BIN}/admincmd/bpadmlist
rm -f ${NB_BIN}/admincmd/bpadmrestore
# scan moved to volmgr/bin. Clean up possible old file in goodies.
rm -f ${VM_BIN}/goodies/scan
# MySQL is no longer being packaged as of 6.0. Also
# clean up other NB binaries that are obsolete as of
# NB 6.0.
rm -f ${NB_BIN}/admincmd/nbdbsetport ${NB_BIN}/admincmd/nbdbstop
rm -f ${NB_BIN}/admincmd/nbdbsetpw ${NB_BIN}/admincmd/nbdbupdatedb
rm -f ${NB_BIN}/admincmd/nbdbdmon
rm -f /usr/openv/man/*1*/nbdbsetport.1* /usr/openv/man/*1*/nbdbsetpw.1*
rm -f ${NB_BIN}/goodies/man/nbdbsetport.1* ${NB_BIN}/goodies/man/nbdbsetpw.1*
rm -f /usr/openv/lib/libmysqlclient* /usr/openv/lib/libVnbdb*
rm -f /usr/openv/db/bin/nbdbd
rm -f /usr/openv/db/etc/nbdb.cnf
rm -f /usr/openv/db/init_files.tar.Z
rm -rf /usr/openv/db/etc/mysql /usr/openv/db/var
rm -f ${SHARE_DIR}/tpc_GDM.txt ${SHARE_DIR}/tpc_NBAR.txt
rm -f ${NB_BIN}/bpsched
rm -f ${NB_BIN}/admincmd/bpschedreq ${NB_BIN}/admincmd/bpstuconvert
rm -f ${NB_BIN}/goodies/VRTS-HEADER-MIB.txt
rm -f ${NB_BIN}/goodies/VRTS-SNMP-MIB-Readme.txt
rm -f ${NB_BIN}/goodies/VRTS-SNMP-MIB.txt
rm -f /usr/openv/NB-Java.install
rm -f ${SHARE_DIR}/tpc_Client.txt ${SHARE_DIR}/tpc_Console.txt
# As of 6.0, xbp is gone. Clean up possible old files.
rm -f /usr/openv/man/*1/xbp.1*
rm -f ${NB_BIN}/goodies/man/xbp.1
rm -rf /usr/openv/netbackup/help/xbp
rm -f ${NB_BIN}/XKeysymDB ${NB_BIN}/xbp
for xfile in XNB XNB.dt
do
rm -f /usr/openv/netbackup/${xfile}
rm -f ${NB_BIN}/${xfile}
rm -f /usr/lib/X11/app-defaults/${xfile}
rm -f /usr/openwin/lib/app-defaults/${xfile}
done
# As of 5.1, nonroot_admin is no longer released. Clean up old files.
rm -f ${NB_BIN}/nonroot_admin ${NB_BIN}/goodies*/nonroot_admin
# As of 6.0, these files changed names. Clean up the old ones.
rm -f ${NB_BIN}/add_slave ${NB_BIN}/add_slave_on_clients
rm -f /usr/openv/netbackup/help/bpadm/Class
# As of 6.0, some volmgr commands were removed.
rm -f ${VM_BIN}/vmdb_merge ${VM_BIN}/vmdb_dump ${VM_BIN}/vmdb_cat
rm -f ${VM_BIN}/vmdb_compact ${VM_BIN}/vmmedia ${VM_BIN}/goodies/vmconf
rm -f /usr/openv/man/man1*/vmdb_merge.1*
rm -f ${VM_BIN}/tsdd ${VM_BIN}/tsdtest
rm -rf ${VM_DIR}/help/robots/TSD
rm -f /usr/openv/man/man1*/tsdd.1*
rm -f ${VM_BIN}/ts8d ${VM_BIN}/ts8test
rm -rf ${VM_DIR}/help/robots/TS8
rm -f /usr/openv/man/man1*/ts8d.1*
rm -f ${VM_BIN}/lsdev
rm -f ${VM_DIR}/help/tpconfig/tpconfigvm
rm -f ${VM_DIR}/misc/SSOhosts
rm -rf ${NB_DIR}/BPFSMAP_TMPDIR
rm -f /usr/openv/man/*1*/bpsynth.1* ${NB_BIN}/goodies/man/bpsynth.1*
# As of 6.0, some mm external files are no longer needed. They are
# created dynamically. Remove them.
rm -f ${SHARE_DIR}/device_mappings.txt ${SHARE_DIR}/external_densities.txt
rm -f ${SHARE_DIR}/external_drivetypes.txt ${SHARE_DIR}/external_mediatypes.txt
rm -f ${SHARE_DIR}/external_robotics.txt
rm -f ${NB_BIN}/bpsched.d/pempersist
rm -f ${NB_DIR}/db/jobs/pempersist
VM_DEVICE_TABLES="external_attributes.txt external_drive_mappings.txt external_robot_mappings.txt"
for vm_file in $VM_DEVICE_TABLES
do
if [ -f ${SHARE_DIR}/${vm_file} ] ; then
if [ ! -f ${SHARE_DIR}/${vm_file}.${OLD_RELEASE_LEVEL} -a $SaveBinaries = 1 ] ; then
${ECHO} "Saving .../share/${vm_file} as ${vm_file}.${OLD_RELEASE_LEVEL}"
cp ${SHARE_DIR}/${vm_file} ${SHARE_DIR}/${vm_file}.${OLD_RELEASE_LEVEL}
fi
fi
done
# These 3 files are obsolete in 5.0. Remove them now that we've
# saved off the existing file.
rm -f ${SHARE_DIR}/external_attributes.txt ${SHARE_DIR}/external_drive_mappings.txt
rm -f ${SHARE_DIR}/external_robot_mappings.txt
# Files were renamed in 6.5. Remove the old ones.
rm -f /usr/openv/lib/libSigComp210.s? /usr/openv/lib/libSigComp210ST.s?
rm -f /usr/openv/lib/libSigFCL260.s? /usr/openv/lib/libSigFCL260ST.s?
rm -f /usr/openv/lib/libSigSchedule260.s? /usr/openv/lib/libSigSchedule260ST.s?
# Libraries were consolidated in 6.5. Remove the old ones.
rm -f /usr/openv/lib/libVvcomb.s? /usr/openv/lib/libVvcombMT.s?
# Remove unused commands/scripts in 6.5.
rm -f ${NB_BIN}/bpgp ${NB_BIN}/index_clients
rm -f ${NB_BIN}/admincmd/bpdir
rm -f ${DB_DIR}/scripts/emmDrive_proc_p.sql
rm -f ${DB_DIR}/scripts/emmLibrary_proc_p.sql
rm -f ${DB_DIR}/scripts/emmGetNextDriveIndex_proc_p.sql
rm -f ${DB_DIR}/scripts/emmMachine_proc_p.sql
rm -f ${DB_DIR}/scripts/emmParseDeviceInquiry_proc_p.sql
rm -f ${DB_DIR}/scripts/emmValidateDeviceSerialization_proc_p.sql
rm -f ${DB_DIR}/scripts/emm_media_proc_p.sql
rm -f ${DB_DIR}/scripts/emmMediaPool_proc_p.sql
# nbgenjob was absorbed by nbjm in 6.5.
# nbnos was absorbed by nbevtmgr.
# bpcoord was absorbed by bpsynth.
# bpauth* and vopie* commands are no longer being documented.
rm -f ${NB_BIN}/nbgenjob ${NB_BIN}/nbnos ${NB_BIN}/goodies/nbnosview
rm -f ${NB_BIN}/bpcoord
rm -f /usr/openv/resources/nbgenjob_root.res
rm -f /usr/openv/resources/nbnos_root.res
rm -f /usr/openv/man/*1*/nbnos.1* ${NB_BIN}/goodies/man/nbnos.1*
rm -f /usr/openv/man/*1*/bpauthorize.1* ${NB_BIN}/goodies/man/bpauthorize.1*
rm -f /usr/openv/man/*1*/bpauthsync.1* ${NB_BIN}/goodies/man/bpauthsync.1*
rm -f /usr/openv/man/*1*/vopie_util.1* ${NB_BIN}/goodies/man/vopie_util.1*
rm -f /usr/openv/man/*1*/vopied.1* ${NB_BIN}/goodies/man/vopied.1*
# As of 6.5, some documentation deliverables are no longer needed.
rm -f /usr/openv/java/vrts/nbvsm_l10n/en/help/nbu_mm_sa.vxa
rm -f /usr/openv/volmgr/MediaMgr_DeviceConfig_Guide.txt
# In NB 7.0, many library changes, clean up old ones.
rm -f /usr/openv/lib/libstspisandisk.${DSO_SUFFIX}
rm -f /usr/openv/lib/libstspisandiskMT.${DSO_SUFFIX}
rm -f /usr/openv/lib/libsthtarST.${DSO_SUFFIX}
rm -f /usr/openv/lib/libsthtar.${DSO_SUFFIX}
rm -f /usr/openv/lib/libstspiarraydisk.${DSO_SUFFIX}
rm -f /usr/openv/lib/libstspiarraydiskMT.${DSO_SUFFIX}
for slib in libvxTAOST libvxTAO_BiDirGIOPST libvxTAO_DynamicInterface \
libvxTAO_IORTableST libvxTAO_MessagingST libvxTAO_PortableServerST \
libvxTAO_SecurityST libvxUCS4_UTF16
do
rm -f /usr/openv/lib/${slib}.${DSO_SUFFIX}
rm -f /usr/openv/lib/${slib}.${DSO_SUFFIX}.[12]
done
# In NB 7.0, bpSALinfo and its libraries are gone, clean them up.
# Other commands too.
rm -f /usr/openv/netbackup/bin/admincmd/bpSALinfo
rm -f /usr/openv/lib/libvrtssal_api.${DSO_SUFFIX}
rm -f /usr/openv/lib/libicudt18?.${DSO_SUFFIX}
rm -f /usr/openv/man/*1*/bpSALinfo.1* ${NB_BIN}/goodies/man/bpSALinfo.1*
rm -f /usr/openv/netbackup/bin/admincmd/bpmoverinfo
rm -f /usr/openv/man/*1*/bpmoverinfo.1* ${NB_BIN}/goodies/man/bpmoverinfo.1*
rm -f /usr/openv/netbackup/bin/add_media_server
rm -f /usr/openv/db/bin/vxdbms_server.tar.Z
rm -f /usr/openv/volmgr/bin/odld /usr/openv/volmgr/bin/odltest
rm -f /usr/openv/man/*1*/odld.1*
rm -rf /usr/openv/volmgr/help/robots/ODL
rm -f /usr/openv/volmgr/bin/tpformat
rm -f /usr/openv/man/*1*/tpformat.1*
rm -f /usr/openv/netbackup/bin/nbpushdata
rm -f /usr/openv/man/*1*/nbpushdata.1* ${NB_BIN}/goodies/man/nbpushdata.1*
rm -rf /usr/openv/netbackup/logs/nbpushdata
rm -rf /usr/openv/var/nbpushdata
rm -f /usr/openv/man/*1*/set_ndmp_attr.1* ${NB_BIN}/goodies/man/set_ndmp_attr.1*
rm -f /usr/openv/volmgr/bin/tshd /usr/openv/volmgr/bin/tshtest
rm -f /usr/openv/man/*1*/tshd.1*
rm -rf /usr/openv/volmgr/help/robots/TSH
rm -f ${NB_BIN}/goodies/fimselector
rm -f ${NB_BIN}/fsanalyze
rm -f ${NB_BIN}/update_services
rm -f ${NB_BIN}/admincmd/bpauthsync
rm -rf ${NB_BIN}/goodies/misc
rm -f ${NB_BIN}/goodies/ms_exchange.filelist
rm -f ${DB_DIR}/scripts/rb_asa_schema.sql
rm -f ${DB_DIR}/scripts/emm_asa_defaults.sql
rm -f ${DB_DIR}/scripts/emm_asa_schema.sql
rm -f /usr/openv/java/vrts/nbu/help/en/nbadmin_wiz.vxa
rm -f /usr/openv/java/vrts/nbu/help/en/nbu_adv_client.vxa
rm -f /usr/openv/java/vrts/nbvsm_l10n/en/help/nbadmin_wiz.vxa
rm -f /usr/openv/java/vrts/nbvsm_l10n/en/help/nbu_adv_client.vxa
rm -f /usr/openv/java/vrts/nbvsm_l10n/en/help/nbu_sa_accessibility.vxa
rm -f /usr/openv/java/vrts/nbvsm_l10n/en/help/nbu_sa_glossary.vxa
rm -f /usr/openv/java/vrts/nbvsm_l10n/en/help/nbu_sa_tscodes.vxa
rm -rf /usr/openv/netbackup/db/jobs/restart
rm -f ${NB_BIN}/goodies/support/support
rm -f /usr/openv/resources/emm_root.res
rm -f ${NB_BIN}/admincmd/bpuser ${NB_BIN}/bpbrmvlt
rm -f ${NB_DIR}/help/bpadm/Database
rm -f ${NB_BIN}/goodies/windows2000.filelist
rm -f ${NB_BIN}/goodies/ms_exchange_kms.filelist
rm -f ${NB_BIN}/goodies/ms_exchange_srs.filelist
rm -f /usr/openv/lib/libvaultservice.${DSO_SUFFIX}
rm -f ${NB_BIN}/admincmd/nbshareddisk
rm -f /usr/openv/man/*1*/nbshareddisk.1* ${NB_BIN}/goodies/man/nbshareddisk.1*
rm -f ${NB_BIN}/goodies/db_begin_bkup ${NB_BIN}/goodies/db_end_bkup
rm -f ${NB_BIN}/goodies/db_begin_streams ${NB_BIN}/goodies/db_end_streams
# In NB 7.0, AIX went to 64 bit only.
if [ "${MACHINE}" = "RS6000" ] ; then
rm -rf /usr/openv/volmgr/bin/driver_64
fi
# In NB 7.0, several Unix addons were absorbed into the
# server package.
rm -f /usr/openv/lib/libndmp_bpfsmap.s?
rm -f ${VM_BIN}/set_ndmp_attr ${SHARE_DIR}/version_ndmp
rm -f ${NB_BIN}/update_dbclients
rm -f ${NB_BIN}/update_flashclients
rm -f ${NB_BIN}/vltcore ${SHARE_DIR}/version_vault
rm -f ${NB_BIN}/update_luagent ${NB_BIN}/nbgp
rm -f ${SHARE_DIR}/version_bmr ${NB_BIN}/install_bmr
# Remove nbsvcmon.conf to force nbsvcmon to re-create the file
# and therefore know about new daemons.
rm -f /usr/openv/netbackup/nbsvcmon.conf
# In NB 7.0, HP PARISC dropped to true media server only.
if [ "${MACHINE}" = "HP9000-800" ] ; then
for page in bmrs.1m bpbackupdb.1m bpdbm.1m bprecover.1m \
cat_convert.1m create_nbdb.1m nbdb_admin.1m \
nbdb_backup.1m nbdb_move.1m nbdb_ping.1m \
nbdb_restore.1m nbdb_unload.1m nbdbms_start_server.1m \
nbdbms_start_stop.1m nbemm.1m nbrb.1m
do
rm -f /usr/openv/man/man1m/${page}
rm -f /usr/openv/netbackup/bin/goodies/man/${page}
done
for admin in bpbackupdb bpplcatdrinfo bprecover nbrbutil
do
rm -f /usr/openv/netbackup/bin/admincmd/${admin}
done
for bin in bmrd bmrpans bmrs bmrsetupmaster bpdbm cat_convert \
nbdbms_start_stop nbemm nbrb rc.bmrd
do
rm -f /usr/openv/netbackup/bin/${bin}
done
for file in BMRDB.load.xml PnPDB_2003.xml PnpDB_2000.xml \
PnpDB_2000SP1.xml PnpDB_2000SP2.xml PnpDB_2000SP3.xml \
PnpDB_2000SP4.xml PnpDB_2003SP1.xml PnpDB_2003SP2.xml \
PnpDB_WinPE_2003SP1.xml PnpDB_WinPE_2003SP1_X64.xml \
PnpDB_XP.xml PnpDB_XPSP1.xml PnpDB_XPSP2.xml \
dos.uncooked unattend.txt
do
rm -f /usr/openv/netbackup/baremetal/server/data/${file}
done
rm -f /usr/openv/netbackup/db/images/db_marker.txt
if [ ! -d ${DB_DIR}.${OLD_RELEASE_LEVEL} -a -d ${DB_DIR} -a $SaveBinaries = 1 ] ; then
${ECHO} "Saving .../db as db.${OLD_RELEASE_LEVEL}"
mv ${DB_DIR} ${DB_DIR}.${OLD_RELEASE_LEVEL}
if [ $? != 0 ]; then
${ECHO} "
Error moving ${DB_DIR} to ${DB_DIR}.${OLD_RELEASE_LEVEL}"
exit 1
fi
fi
fi
if [ -d /usr/openv/patch ] ; then
if [ ! -d /usr/openv/patch.${OLD_RELEASE_LEVEL} -a $SaveBinaries = 1 ] ; then
${ECHO} "Saving patch history as /usr/openv/patch.${OLD_RELEASE_LEVEL}"
mv /usr/openv/patch /usr/openv/patch.${OLD_RELEASE_LEVEL}
fi
fi
if [ -f /usr/openv/.psummary -o -f /usr/openv/.phistory -o \
-f /usr/openv/.pseq ] ; then
if [ ! -d /usr/openv/pack ] ; then
mkdir /usr/openv/pack
chmod 755 /usr/openv/pack
chgrp bin /usr/openv/pack
fi
SaveBinaries=1
fi
if [ -d /usr/openv/pack ] ; then
if [ ! -d /usr/openv/pack.${OLD_RELEASE_LEVEL} -a ${SaveBinaries} -eq 1 ] ; then
${ECHO} "Saving pack history as /usr/openv/pack.${OLD_RELEASE_LEVEL}"
mv /usr/openv/pack /usr/openv/pack.${OLD_RELEASE_LEVEL}
fi
for pfile in .psummary .phistory .pseq
do
if [ -f /usr/openv/${pfile} ] ; then
rmfile="${pfile}"
if [ "${pfile}" = ".phistory" ] ; then
rmfile="pack.history"
elif [ "${pfile}" = ".psummary" ] ; then
rmfile="pack.summary"
fi
rm -f /usr/openv/pack.${OLD_RELEASE_LEVEL}/${rmfile}
mv /usr/openv/${pfile} /usr/openv/pack.${OLD_RELEASE_LEVEL}
fi
done
fi
# Clean up possible old links. Need to do this before the server lays
# down client binaries.
for link in HP-UX-IA64/HP-UX11.31 Solaris/Solaris9 Solaris/Solaris10
do
if [ -h ${NB_CLIENT_DIR}/${link} ] ; then
rm -f ${NB_CLIENT_DIR}/${link}
fi
done
# Clean up old HW/OS client binaries now that we are delivering
# compressed tar balls. But only do if we haven't done it already.
# This has to be AFTER the old links are cleaned up.
for dir in ${clean_up_client}
do
ls ${NB_CLIENT_DIR}/${HW_Class}/${dir}/client_bin.tar.gz >/dev/null 2>&1
if [ $? -ne 0 ] ; then
if [ -d ${NB_CLIENT_DIR}/${HW_Class}/${dir} ] ; then
rm -rf ${NB_CLIENT_DIR}/${HW_Class}/${dir}/*
fi
fi
done
cd /
${ECHO} "
Reading NetBackup files from ${ServerDir}
"
# On an rs6000 machine, free unused shared objects from kernel and library
# memory, so tar doesn't bomb replacing the libraries in /usr/openv/lib.
if [ "${MACHINE}" = "RS6000" ] ; then
/usr/sbin/slibclean
fi
# If a clustered machine has gone down ungracefully,
# links to nowhere could remain which will cause
# failures. Clean up possible bad links.
Cluster_Clean
Transfer_Product ${ServerDir}/${NB_TAR_FILE}
${ECHO} "Reading Media Manager files from ${ServerDir}
"
Transfer_Product ${ServerDir}/${VM_TAR_FILE}
# A couple may not exist during initial installs so make
# sure these directories exist with the proper permissions.
for dir in ${NB_DIR}/db ${VM_DIR}/database ${VM_DIR}/misc/robotic_db \
/usr/openv/db /usr/openv/tmp \
${NB_DIR}/db/vault ${NB_DIR}/vault ${NB_DIR}/vault/sessions \
/usr/openv/kms
do
if [ ! -d ${dir} -a ! -h ${dir} ] ; then
mkdir ${dir}
fi
chmod 755 ${dir}
chgrp bin ${dir}
done
create_empty NDMP NDMP
create_empty Novell NetWare
create_empty OpenVMS OpenVMS_Alpha
create_empty OpenVMS OpenVMS_I64
create_empty OpenVMS OpenVMS_VAX
create_empty Windows-x86 Windows2003
create_empty Windows-x86 Windows2008
create_empty Windows-x86 Windows7
create_empty Windows-x86 WindowsVista
create_empty Windows-x86 WindowsXP
create_empty Windows-IA64 Windows2003
create_empty Windows-IA64 Windows2008
create_empty Windows-IA64 WindowsXP
create_empty Windows-x64 Windows2003
create_empty Windows-x64 Windows2008
create_empty Windows-x64 Windows7
create_empty Windows-x64 WindowsVista
create_empty Windows-x64 WindowsXP
# In NB 7.0, we changed the names of PC HARDWARE types to Windows.
# If the old client types are listed, it is fine to leave them but
# the client types supported in 7.0 should not exist by the old name.
for P in PC PC-IA64 PC-x64
do
for CT in Windows2003 Windows2008 Windows7 WindowsVista WindowsXP
do
if [ -d ${NB_CLIENT_DIR}/${P}/${CT} ] ; then
rmdir ${NB_CLIENT_DIR}/${P}/${CT} > /dev/null 2>&1
if [ $? != 0 ] ; then
W=`${ECHO} ${P} | sed s/PC/Windows/`
${ECHO} "${NB_CLIENT_DIR}/${P}/${CT} is now supported as
${NB_CLIENT_DIR}/${W}/${CT}.
${NB_CLIENT_DIR}/${P}/${CT} should be emptied and removed."
fi
fi
done
# If the PC(X) directory is empty now, remove it too.
rmdir ${NB_CLIENT_DIR}/${P} > /dev/null 2>&1
done
# Create empty directories for the Unix clients as well so
# that policies will show them as valid client types even if
# that client software is not loaded on the server.
create_empty HP-UX-IA64 HP-UX11.31
create_empty HP9000-800 HP-UX11.11
create_empty INTEL FreeBSD6.0
create_empty Linux IBMpSeriesRedHat2.6
create_empty Linux IBMpSeriesSuSE2.6
create_empty Linux IBMzSeriesRedHat2.6
create_empty Linux IBMzSeriesSuSE2.6
create_empty Linux RedHat2.6
create_empty Linux SuSE2.6.16
create_empty Linux-IA64 RedHat2.6
create_empty Linux-IA64 SuSE2.6
create_empty MACINTOSH MacOSX10.5
create_empty RS6000 AIX53
create_empty Solaris Solaris9
create_empty Solaris Solaris10
create_empty Solaris Solaris_x86_10_64
# Set up links. This code is partially duplicated in bp.inst.sh
# and nb_postinstall.
if [ -d ${NB_CLIENT_DIR}/NDMP/NetApp ] ; then
rm -rf ${NB_CLIENT_DIR}/NDMP/NetApp
fi
if [ -d ${NB_CLIENT_DIR}/HP9000-800 ] ; then
if [ -d ${NB_CLIENT_DIR}/HP9000-700 ] ; then
rm -rf ${NB_CLIENT_DIR}/HP9000-700
fi
( cd ${NB_CLIENT_DIR} ; rm -f HP9000-700 ; ln -s HP9000-800 HP9000-700 )
( cd ${NB_CLIENT_DIR}/HP9000-800 ; rm -f HP-UX11.23 ; ln -s HP-UX11.11 HP-UX11.23 )
( cd ${NB_CLIENT_DIR}/HP9000-800 ; rm -f HP-UX11.31 ; ln -s HP-UX11.11 HP-UX11.31 )
fi
Normal_Exit