#!/bin/sh # $Id: client.inst.sh,v 1.3 2011/12/15 20:27:29 $ #*************************************************************************** # $VRTScprght: Copyright 1993 - 2012 Symantec Corporation, All Rights Reserved $ #*************************************************************************** # client.inst.sh is called during the media install. It is # called from cdrom_install script. If on a server, present list # clients that can be installed. If on a client, only # do a local install. # # client.inst ${Trace_File} # 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 } # Get_Client_List sets up a list of the clients to install # # $1 if set will cause this routine to accept only one answer. Get_Client_List () { ListOK=0 Options=`/bin/ls ${ClientsDir}/${NB_CLIENT_DIR}` Platforms=`${ECHO} $Options | wc -w | awk '{print $1}'` if [ $# = 0 ] ; then OneAnswer=no All=`expr ${Platforms} + 1` else OneAnswer=$1 All=${Platforms} fi export OneAnswer while [ $ListOK = 0 ] do tput clear 2> /dev/null ${ECHO} " Choose the Platform Client Options you wish to install. " ClientFILES="" ${ECHO} " Platform Client Options -----------------------" counter=1 ${ECHO} "$Options"| while read Level do if [ $Level = HP9000-800 ] ; then Level=HP9000 fi if [ ${counter} -lt 10 ] ; then ${ECHO} " ${counter}. $Level" else ${ECHO} " ${counter}. $Level" fi counter=`expr $counter + 1` done if [ $OneAnswer = no ] ; then if [ ${All} -lt 10 ] ; then ${ECHO} " $All. All UNIX client platforms" else ${ECHO} " $All. All UNIX client platforms" fi fi ${ECHO} " q. quit selecting" notdone=1 while [ $notdone = 1 ] do if [ "$ClientFILES" != "" ] ; then ${ECHO} " $ClientFILES" fi if [ $OneAnswer = no ] ; then get_number " Enter Choice(s)" 1 $All Return else get_number " Enter Choice" 1 $All Return notdone=0 fi for VaLuE in $VALUE do if [ $VaLuE = q ] ; then notdone=0 break elif [ $VaLuE = $All -a $OneAnswer = no ] ; then ClientFILES="." notdone=0 break else set $Options shift `expr $VaLuE - 1` ClientFILES="$ClientFILES ${1}" if [ $OneAnswer != no ] ; then return fi fi done done for Client in $ClientFILES do ${ECHO} $Client >> /tmp/ClientFILES.$$ done if [ -f /tmp/ClientFILES.$$ ] ; then sort -u /tmp/ClientFILES.$$ > /tmp/ClientFILES.$$.$$ ClientFILES=`cat /tmp/ClientFILES.$$.$$` ${ECHO} " You have chosen to install: " if [ "$ClientFILES" = "." ] ; then ${ECHO} " All UNIX client platforms" # Get the real list of dirs (used for saving). /bin/ls ${ClientsDir}/${NB_CLIENT_DIR} | sort -u > /tmp/ClientFILES.$$.$$ else for Client in $ClientFILES do if [ $Client = HP9000-800 ] ; then Client=HP9000 fi ${ECHO} " `basename $Client`" done fi ${ECHO} "" if confirm y "Is this the list you wish to use?" then ClientFILES=`cat /tmp/ClientFILES.$$.$$` ListOK=1 fi rm -f /tmp/ClientFILES.$$ /tmp/ClientFILES.$$.$$ else ${ECHO} " You have not chosen any clients to install." if confirm n "Do you want to load any of the NetBackup clients?" then : else ListOK=1 fi fi done } # Get a numeric value from the user. # # get_number Prompt_string low_value high_value Exit_or_return # Entered value is returned in the VALUE variable get_number() { Prompt "$1 [$2 - $3] " valid=0 until [ $valid != 0 ] do read VALUE VALUE=${VALUE:=bad} ${ECHO} $VALUE >> ${Trace_File} for VaLuE in $VALUE do expr $VaLuE + 0 > /dev/null 2>/dev/null x=$? if [ $x -gt 1 ] ; then if [ "$VaLuE" = q ] ; then if [ $4 != Return ] ; then exit 0 else return fi fi Prompt "Choose values in the range $2 - $3, try again or enter q to quit: " valid=0 break else if [ $VaLuE -ge $2 -a $VaLuE -le $3 ] ; then valid=1 else Prompt "Choose values in the range $2 - $3, try again or enter q to quit: " valid=0 break fi fi done done } ################### MAIN #################### MYNAME=`basename $0` CALL_path=`dirname $0` NB_DIR=usr/openv/netbackup NB_CLIENT_DIR=usr/openv/netbackup/client no_usr_NB_CLIENT_DIR=openv/netbackup/client os_name=`uname -s` os_level=`uname -r | cut -c1-2` MACHINE=${os_name}${os_level} pack_save_dt=`/bin/date +"%m%d%y_%H%M%S"` # 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 if [ -d ${CALL_path}/../../anb/Clients ] ; then cd ${CALL_path}/../../anb/Clients ClientsDir=`pwd` else ${ECHO} " Error reading the media. " exit 1 fi Trace_File=$1 shift # If there's another parameter, see if it is one of the special # BMR parameters required to phase an install when creating an # SRT on HP. This is due to the change to use native packaging. # HP doesn't support native installs in a chrooted environment. # The BMR parameters only take effect for local client installs, # not loading up the client software distribution area on a server. bmr_phase="" if [ "${1}" = "-srt_preinstall" -o "${1}" = "-srt_postinstall" ] ; then bmr_phase="${1}" shift fi if [ -f /${NB_DIR}/bin/bpdm ] ; then Server=server else Server="Nota" fi set_tar_options ${MACHINE} case "$MACHINE" in AIX*) Version=`uname -v` REQFILES="RS6000" # The default file size on AIX is 2097151 512-byte blocks # which is equivalent to 1.0GB. Need to bump up during # installation to over 2.0GB (4194304 512-byte blocks). # Loading the Linux/* clients is over 1GB. ulimit -f unlimited fsize=`env LANG=C ulimit -f` if [ "${fsize}" != "unlimited" ] ; then ${ECHO} " Unable to modify ulimit fsize=${fsize}. Set this to 'unlimited' and retry the install." exit 1 fi ;; FreeBSD*) REQFILES="INTEL" ;; HP*) if [ `uname -m` = ia64 ] ; then REQFILES="HP-UX-IA64" else REQFILES="HP9000-800" fi ;; Linux*) if [ `uname -m` = ia64 ] ; then REQFILES="Linux-IA64" else REQFILES="Linux" fi ;; Darwin* ) REQFILES="MACINTOSH" ;; SunOS5*) REQFILES="Solaris" ;; *) REQFILES="." ;; esac if [ $Server = server ] ; then # Linux Itaniums are no longer supported as a server # but should be allowed to use client.inst via option 2. # If Linux Itanium, bail out in the server case. if [ "${REQFILES}" = "Linux-IA64" ] ; then ${ECHO} " NetBackup 7.0 or later is only supported as a client for ${REQFILES} platforms. " exit 1 fi Get_Client_List if [ ! -d /${NB_CLIENT_DIR} ] ; then mkdir -p /${NB_CLIENT_DIR} chmod 755 /${NB_CLIENT_DIR} fi for file in $ClientFILES do ${ECHO} cd ${ClientsDir}/${NB_CLIENT_DIR} HW_Class=`basename ${file}` # Get rid of possible old links. This code is partially # duplicated in bp.inst.sh and nb_preinstall. 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. case "${HW_Class}" in HP-UX-IA64) client_os=HP-UX11.31 ;; HP9000-800) client_os=HP-UX11.11 ;; Linux-IA64) client_os="RedHat2.6 SuSE2.6" ;; Linux) client_os="IBMpSeriesRedHat2.6 IBMpSeriesSuSE2.6" ;; Solaris) client_os="Solaris9 Solaris10 Solaris_x86_10_64" ;; ".") client_os="HP-UX-IA64/HP-UX11.31 HP9000-800/HP-UX11.11 Linux-IA64/RedHat2.6 Linux-IA64/SuSE2.6 Linux/IBMpSeriesRedHat2.6 Linux/IBMpSeriesSuSE2.6 Solaris/Solaris9 Solaris/Solaris10 Solaris/Solaris_x86_10_64" ;; *) client_os=""; esac for dir in ${client_os} 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 ${ECHO} "Saving client binaries for /${NB_CLIENT_DIR}/${file}." # Everybody under HW better have the same version on the image. cl_level=`cat ${ClientsDir}/${NB_CLIENT_DIR}/${HW_Class}/*/version | cut -d" " -f2 | sort -u | head -1` save_cl_level=`expr ${cl_level} : '\([0-9.]*\)'` for pdir in pack pack/NB_CLT_${save_cl_level} \ pack/NB_CLT_${save_cl_level}/save do if [ ! -d /usr/openv/${pdir} ] ; then mkdir /usr/openv/${pdir} chmod 755 /usr/openv/${pdir} chgrp bin /usr/openv/${pdir} fi done # Wildcard the date/time so there is only one copy ever saved. rm -f /usr/openv/pack/NB_CLT_${save_cl_level}/save/NB_CLT_${save_cl_level}${HW_Class}.*.tar rm -f /usr/openv/pack/NB_CLT_${save_cl_level}/save/NB_CLT_${save_cl_level}${HW_Class}.*.tar.gz # Drop usr/ from the path when saving for patch uninstalls as all # client packages start with openv and we need to be consistent. ( cd ${ClientsDir}/usr /bin/tar ${TAR_C_OPTIONS} /usr/openv/pack/NB_CLT_${save_cl_level}/save/NB_CLT_${save_cl_level}${HW_Class}.${pack_save_dt}.tar ${no_usr_NB_CLIENT_DIR}/${file} if [ $? -ne 0 ] ; then ${ECHO} "tar failed. Aborting..." exit 1 fi gzip /usr/openv/pack/NB_CLT_${save_cl_level}/save/NB_CLT_${save_cl_level}${HW_Class}.${pack_save_dt}.tar if [ $? -ne 0 ] ; then ${ECHO} "gzip failed. Aborting..." exit 1 fi ) # Check exit status from subshell as exit in there doesn't # really exit. if [ $? -ne 0 ] ; then ${ECHO} "Saving client binaries for /${NB_CLIENT_DIR}/${file} failed." ${ECHO} "Aborting..." exit 1 fi ${ECHO} "Reading client binaries for /${NB_CLIENT_DIR}/${file}" /bin/tar ${TAR_C_OPTIONS} - ${HW_Class} | (cd /${NB_CLIENT_DIR} ; /bin/tar v${TAR_X_OPTIONS} - ) if [ $? -ne 0 ] ; then ${ECHO} "tar failed. Aborting..." exit 1 fi done # Set up links. This code is partially duplicated in bp.inst.sh # and nb_preinstall. 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 if [ -d /${NB_CLIENT_DIR}/NDMP/NetApp ] ; then rm -rf /${NB_CLIENT_DIR}/NDMP/NetApp fi # # Execute nblu_registration script to register # NetBackup Client product loaded on the NetBackup server. # ${ECHO} "" if [ ! -x /${NB_DIR}/bin/nblu_registration ] ; then ${ECHO} " /${NB_DIR}/bin/nblu_registration is either missing or not executable. " exit 1 else /${NB_DIR}/bin/nblu_registration NB if [ $? -ne 0 ] ; then ${ECHO} " nblu_registration failed. Run the following command when the problem has been resolved: /${NB_DIR}/bin/nblu_registration NB " fi fi else # Nota Server # Had to change how the questioning happens in order to only # ask the question during normal or srt_preinstall situations. # Still need to always do the middle part (unless the question # was explicitly answered n) in order to get the right client # type to install. The bmr_phase variable is only set if # creating an SRT on HPs. ask_me=y if [ "${bmr_phase}" = "" -o "${bmr_phase}" = "-srt_preinstall" ] ; then if confirm y "Do you want to install the NetBackup client software for this client?" then \: else ask_me=n fi fi if [ "${ask_me}" = "y" ] ; then if [ $REQFILES = "." ] ; then Get_Client_List OneAnswer else ClientFILES=$REQFILES fi if [ " $ClientFILES" = " " ] ; then exit fi ClientType=`${ECHO} ${ClientFILES}` Options=`/bin/ls ${ClientsDir}/${NB_CLIENT_DIR}/${ClientType} 2>/dev/null` OSLevels=`${ECHO} $Options | wc -w | awk '{print $1}'` if [ $OSLevels = 0 ] ; then ${ECHO} " NetBackup client software for the ${ClientType} platform is not on this media." exit 1 elif [ $OSLevels = 1 ] ; then cd ${ClientsDir}/${NB_CLIENT_DIR}/${ClientType}/* OSLevel=`/bin/ls ..` else Valid=1 if [ "${ClientType}" = "Solaris" ] ; then ProcessorType=`uname -p` if [ ${ProcessorType} = "i386" ] ; then oslevel=`uname -r | cut -f2 -d"."` if [ "${oslevel}" -ge "10" ] ; then os_bits=`isainfo -nv` ${ECHO} ${os_bits} | grep "64\-bit" > /dev/null 2>&1 if [ $? -eq 0 ] ; then OSLevel=Solaris_x86_10_64 else Valid=0 fi else Valid=0 fi elif [ ${ProcessorType} = "sparc" ] ; then oslevel=`uname -r | cut -f2 -d"."` if [ "${oslevel}" -ge "9" -a "${oslevel}" -lt "10" ] ; then OSLevel=Solaris9 elif [ "${oslevel}" -ge "10" ] ; then OSLevel=Solaris10 else Valid=0 fi else Valid=0 fi elif [ "${ClientType}" = "Linux" ] ; then suse=no if [ -f /etc/SuSE-release -o -f /sbin/SuSEconfig ] ; then suse=yes fi oslevel_f1=`uname -r | cut -f1 -d"."` oslevel_f2=`uname -r | cut -f2 -d"."` oslevel_f3=`uname -r | cut -f3 -d"." | cut -f1 -d"-"` if [ "${oslevel_f3}" = "" ] ; then oslevel_f3=0 fi type=`uname -m` echo ${type} | grep s390 > /dev/null 2>&1 if [ $? -ne 0 ] ; then if [ ${type} = "ppc64" ] ; then if [ "${oslevel_f1}" -ge "3" ] || [ "${oslevel_f1}" = "2" -a "${oslevel_f2}" -ge "6" ] ; then if [ "${suse}" = "no" ] ; then OSLevel=IBMpSeriesRedHat2.6 else OSLevel=IBMpSeriesSuSE2.6 fi fi elif [ "${oslevel_f1}" -ge "3" ] || [ "${oslevel_f1}" = "2" -a "${oslevel_f2}" -ge "6" ] ; then if [ "${type}" = "x86_64" ] ; then # In case they bump the kernel level to 2.7, need to check # for that in addition to the 2.6.x case. if [ "${suse}" = "no" ] ; then if [ "${oslevel_f1}" -ge "3" -o "${oslevel_f2}" -ge "7" -o "${oslevel_f3}" -ge "18" ] ; then if [ -f /etc/debian_version ] ; then OSLevel=Debian2.6.18 else OSLevel=RedHat2.6.18 fi else Valid=0 fi else if [ "${oslevel_f1}" -ge "3" -o "${oslevel_f2}" -ge "7" -o "${oslevel_f3}" -ge "16" ] ; then OSLevel=SuSE2.6.16 else Valid=0 fi fi else Valid=0 fi else Valid=0 fi else if [ "${oslevel_f1}" -ge "3" ] || [ "${oslevel_f1}" = "2" -a "${oslevel_f2}" -ge "6" ] ; then if [ "${type}" = "s390x" ] ; then # In case they bump the kernel level to 2.7, check # for that in addition to the 2.6.x case. if [ "${suse}" = "no" ] ; then if [ "${oslevel_f1}" -ge "3" -o "${oslevel_f2}" -ge "7" -o "${oslevel_f3}" -ge "18" ] ; then OSLevel=IBMzSeriesRedHat2.6.18 else Valid=0 fi else if [ "${oslevel_f1}" -ge "3" -o "${oslevel_f2}" -ge "7" -o "${oslevel_f3}" -ge "16" ] ; then OSLevel=IBMzSeriesSuSE2.6.16 else Valid=0 fi fi else Valid=0 fi else Valid=0 fi fi elif [ "${ClientType}" = "Linux-IA64" ] ; then suse=no if [ -f /etc/SuSE-release -o -f /sbin/SuSEconfig ] ; then suse=yes fi oslevel_f1=`uname -r | cut -f1 -d"."` oslevel_f2=`uname -r | cut -f2 -d"."` if [ "${oslevel_f1}" -ge "3" ] || [ "${oslevel_f1}" = "2" -a "${oslevel_f2}" -ge "6" ] ; then if [ "${suse}" = "no" ] ; then OSLevel=RedHat2.6 else OSLevel=SuSE2.6 fi else Valid=0 fi else Valid=0 fi while [ $Valid = 0 ] do ${ECHO} " OS Level Options ----------------" counter=1 ${ECHO} "$Options"| while read Level do ${ECHO} " ${counter}. $Level" counter=`expr $counter + 1` done ${ECHO} " q To quit from this script" ${ECHO} "" ${ECHO} " If your Operating System is a newer level than those listed," ${ECHO} " choose the highest level." ${ECHO} "" get_number " Enter Choice" 1 $OSLevels Exit set $Options shift `expr $VALUE - 1` OSLevel=$1 if [ -d ${ClientsDir}/${NB_CLIENT_DIR}/${ClientType} ] ; then Valid=1 cd ${ClientsDir}/${NB_CLIENT_DIR}/${ClientType}/${OSLevel} ls -R > /dev/null 2>&1 # HP access fi done fi # Silence some informative messages during srt_postinstall # situations so they aren't displayed twice. if [ "${bmr_phase}" = "" -o "${bmr_phase}" = "-srt_preinstall" ] ; then ${ECHO} " This package will install `basename ${ClientType}`/${OSLevel} client." if [ -f /${NB_DIR}/bin/version ]; then OLD_RELEASE_LEVEL=`head -1 /${NB_DIR}/bin/version | cut -d" " -f2` ${ECHO} " NetBackup client is currently at release level ${OLD_RELEASE_LEVEL}." fi NEW_RELEASE_LEVEL=`head -1 ${ClientsDir}/${NB_CLIENT_DIR}/${ClientType}/${OSLevel}/version | cut -d" " -f2` ${ECHO} " This package will install NetBackup client ${NEW_RELEASE_LEVEL}." fi # The following section is done in all cases except if # bmr_phase is set to -srt_preinstall as we don't want to # ask the questions twice. Notice bogus names for # Server and Client in the -srt_preinstall case so that # cp_to_client parameter parsing doesn't get more complicated # than it is. if [ "${bmr_phase}" = "" -o "${bmr_phase}" = "-srt_postinstall" ] ; then master_name="" client_name="" if [ -f /${NB_DIR}/bp.conf ]; then master_name=`tr -d ' \011' < /${NB_DIR}/bp.conf | \ grep "^SERVER=" | head -1 | cut -f2 -d"="` client_name=`tr -d ' \011' < /${NB_DIR}/bp.conf | \ grep "^CLIENT_NAME=" | tail -1 | cut -f2 -d"="` fi if [ "${master_name}" = "" ]; then master_ans=0 while [ ${master_ans} -ne 1 ] do Prompt " Enter the name of the NetBackup server : " read Server ${ECHO} ${Server} >> ${Trace_File} if [ "${Server}" != "" ] ; then master_ans=1 fi done else Server="${master_name}" fi # If there is a CLIENT_NAME setting in bp.conf, use that. # else use hostname if available. if type hostname | grep 'not found' >/dev/null then host=`uname -n` else host=`hostname` fi if [ "${client_name}" != "" ]; then Client=${client_name} else if confirm y " Would you like to use \"${host}\" as the configured name of the NetBackup client?" then Client=${host} else Prompt " Enter the name of this NetBackup client : " read Client ${ECHO} ${Client} >> ${Trace_File} fi fi else Server="bogus" Client="bogus" fi cd ${ClientsDir}/${NB_CLIENT_DIR}/${ClientType}/${OSLevel} ./cp_to_client $Server $Client ${Trace_File} ${bmr_phase} if [ $? != 0 ] ; then ${ECHO} " A failure was detected running `pwd`/cp_to_client $Server $Client ${Trace_File} ${bmr_phase}" exit 1 fi fi fi exit 0