Вы находитесь на странице: 1из 4

MOUNTCMD="/sbin/mount" UMOUNTCMD="/sbin/umount" SAVECFG="/opt/ignite/bin/save_config" # File name extension to save original programs # EXT="IGN" # Set up singal handling # trap "INTERRUPT_HANDLER"

1 2 3 9 15 # Prerequisites for NFS premounts # mountcmd() { # QXCR1001169724 provides this suggestion # echo "INFO: Executing mount and umount program changes in /sbin" cd /sbin if [ $? -ne 0 ] then echo "ERROR: Cannot cd to /sbin" exit 1 fi if [ ! -f "${MOUNTCMD}.${EXT}" ] then cp -p $MOUNTCMD ${MOUNTCMD}.${EXT} if [ $? -eq 0 ] then rm -f $MOUNTCMD ln -s /usr/bin/true $MOUNTCMD else echo "ERROR: Cannot copy $MOUNTCFG" exit 1 fi else echo "ERROR: Cannot copy $UMOUNTCFG" mv ${MOUNTCMD}.${EXT} $MOUNTCMD exit 1 fi if [ ! -f "${UMOUNTCMD}.${EXT}" ] then cp -p $UMOUNTCMD ${UMOUNTCMD}.${EXT} if [ $? -eq 0 ] then rm -f $UMOUNTCMD ln -s /usr/bin/true $UMOUNTCMD else echo "ERROR: Cannot copy $UMOUNTCFG" exit 1 fi else echo "ERROR: Cannot copy $UMOUNTCFG" mv ${UMOUNTCMD}.${EXT} $UMOUNTCMD exit 1 fi

echo "INFO: Modifying $SAVECFG" if [ ! -f "${SAVECFG}.${EXT}" ] then cp -p $SAVECFG ${SAVECFG}.${EXT} if [ $? -eq 0 ] then sed -e "s/^mount -lp/mount.${EXT} -lp/g" $SAVECFG > ${SAVECFG}.$$ if [ -s "${SAVECFG}.$$" ] then mv ${SAVECFG}.$$ $SAVECFG chown bin:bin $SAVECFG chmod 755 $SAVECFG fi else echo "ERROR: Cannot copy $SAVECFG" exit 1 fi else echo "ERROR: Cannot copy $SAVECFG" mv ${SAVECFG}.${EXT} ${SAVECFG} exit 1 fi } # Cleanup after the work is done # cleancmd() { if [ \( -x "${MOUNTCMD}.${EXT}" \) -a \( -x "${UMOUNTCMD}.${EXT}" \) ] then rm $MOUNTCMD rm $UMOUNTCMD mv ${MOUNTCMD}.${EXT} $MOUNTCMD mv ${UMOUNTCMD}.${EXT} $UMOUNTCMD mv ${SAVECFG}.${EXT} $SAVECFG umount -f /var/opt/ignite/recovery/client_mnt umount -f /var/opt/ignite/recovery/arch_mnt pkill -f "ssh -fN -L" fi } # Catch interrupts and handle them # INTERRUPT_HANDLER() { trap "" 1 2 3 9 15 echo "WARN: Interrupt received... Terminating program and cleaning up" cleancmd exit 0 } SSHtunnel() { echo "INFO: Creating tunnel..." echo "CMD: ssh -fN -L ${PORT}:${IGNHOST}:${NFSPORT} ${IGNHOST}" /usr/local/bin/ssh -fN -L ${PORT}:${IGNHOST}:${NFSPORT} ${IGNHOST} if [ $? -ne 0 ] then echo "ERROR: SSH tunnel failed" cleancmd exit 1 else

echo "SUCCESS: SSH tunnel created" fi } NFSv4mnt() { echo "INFO: Running NFSv4 mount via SSH tunnel..." echo "CMD: mount -o port=${PORT},vers=4 localhost:/var/opt/ignite/clients /va r/opt/ignite/recovery/client_mnt" ${MOUNTCMD}.${EXT} -o port=${PORT},vers=4 localhost:/var/opt/ignite/clients / var/opt/ignite/recovery/client_mnt if [ $? -ne 0 ] then echo "ERROR: NFS mount of ${IGNHOST}:/var/opt/ignite/clients failed" cleancmd exit 1 else echo "SUCCESS: NFS mount of ${IGNHOST}:/var/opt/ignite/clients created" fi echo "CMD: mount -F nfs -o port=${PORT},vers=4 localhost:/var/opt/ignite/reco very/archives/${MYHOST} /var/opt/ignite/recovery/arch_mnt" ${MOUNTCMD}.${EXT} -F nfs -o port=${PORT},vers=4 localhost:/var/opt/ignite/re covery/archives/${MYHOST} /var/opt/ignite/recovery/arch_mnt if [ $? -ne 0 ] then echo "ERROR: NFS mount of ${IGNHOST}:/var/opt/ignite/recovery/archives/${M YHOST} failed" cleancmd exit 1 else echo "SUCCESS: NFS mount of ${IGNHOST}:/var/opt/ignite/recovery/archives/$ {MYHOST} created" fi } Ignitebck() { echo "INFO: Running Ignite backups on server $IGNHOST" make_net_recovery -s localhost -P s -x inc_entire=vg00 -x exclude=/tmp -x exc lude=/var/tmp -d "Archive_of_${MYHOST}_via_NFSv4" if [ $? -ne 0 ] then echo "ERROR: Ignite backups have errors" cleancmd exit 1 else echo "SUCCESS: Ignite backups completed" fi } echo "INFO: Memory usage before Ignite-UX backups" swapinfo -tm mountcmd SSHtunnel NFSv4mnt Ignitebck

cleancmd echo "INFO: Memory usage after Ignite-UX backups" swapinfo -tm exit 0

Вам также может понравиться