Here you have :
#!/usr/bin/ksh
#------------------
#
# makesysbak
#
#-----------------
# description : Make a system backup (mksysb) of the system
# on /vol/backup ( NFS on backserv:/backup )
# remarks :
# history :
#
#==============
MAILUSER="root"
FILENAME=`basename $0`
HOST=`hostname`
BAKDIR=/vol/backup
APPLOG=/vol/backup/log
LOGFILE="$APPLOG/$FILENAME.$HOST.`date +%d%m%y`.`date +%H%M`.log"
touch $LOGFILE > /dev/null 2>&1
if [ $? -ne 0 ]
then
LOGFILE="/tmp/$FILENAME.$HOST.`date +%d%m%y`.`date +%H%M`.log"
echo "ERROR: Unable to create LOGFILE in $APPLOG ! \n writing to $LOGFILE instead..." | mail -s "$HOST: $FILENAME ERROR Unable to create LOGFILE" $MAILUSER
fi
exec 1>$LOGFILE 2>&1
#=======================================
# Functions
#=======================================
function mail_exit
{
# $1 = Mail subject
# $2 = Mail data
# $3 = exit code
echo "\nEntering mail_exit function\n"
echo "echo $2 | mail -s $1 $MAILUSER"
echo "$2" | mail -s "$1" "$MAILUSER"
exit $3
}
#===============
#
# Main function
#
#===============
echo "\n\n--------------------------------------------------------\n"
echo "STARTING SYSTEM BACKUP PROCEDURE - `date` \n"
echo "--------------------------------------------------------\n\n"
#
# Let's go
#
if [ $# -eq 1 -a "$1" = "tape" ]
then
#
# Control workstation - Backup up to tape
#
# Edit /etc/exclude.rootvg (exclude directories)
#
echo "This system is the Control Workstation"
echo "Proceeding to tape mksysb..."
# Check if tape is present
#
mt rewind
if [ $? -ne 0 ]
then
echo "\n\nNO TAPE IN DRIVE !!! Please insert a new tape.\n\n"
mail_exit "RS/6000 CWS $HOST system backup FAILED!" "NO TAPE IN DRIVE !!!\nBackup canceled !\n" 1
else
echo "Tape found in /dev/rmt0"
fi
# Check if tape is not a data tape
#
tar tf /dev/rmt0 > /dev/null 2>&1
if [ $? -eq 0 ]
then
echo "\nTAPE IS NOT EMPTY !!!"
echo "\n\nTape contains maybe DATA backup. Aborting system backup...\n\n"
echo "Please use a new tape or a tape that does not contain a tar backup\n"
mt offline
mail_exit "RS/6000 CWS $HOST system backup FAILED!" "TAPE IS NOT EMPRY !!!\nMay be wrong tape inserted\nBackup canceled !\n" 1
else
echo "Tape is not in tar format"
fi
# Proceed to system backup
#
echo "Starting system backup now"
mksysb -i -e /dev/rmt0
if [ $? -ne 0 ]
then
echo "\n\nA PROBLEM was encountered during system backup please check...\n"
mt offline
mail_exit "RS/6000 CWS $HOST system backup FAILED!" "nA PROBLEM was encountered during system backup\nPlease check logfile $APPLOG" 1
fi
echo "Eject tape"
mt offline
echo "\n\n`date` SYSTEM BACKUP SUCCESSFUL !!!\n\n\n"
mail_exit "RS/6000 CWS $HOST System backup completed" "All mounted filesystems of rootvg saved." 0
else
#
# other node - Backup up to /images (/vol/backup) on CWS
#
#
# Remove flag file
#
rm -f $APPLOG/bos.obj.${HOST}.successfull > /dev/null 2>&1
echo "This system is $HOST"
#
# Check if automounter is running and start it if not
echo "Check if automount is running"
ps -fe | grep automount | grep -v grep > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "Starting automount"
/usr/sbin/automount
if [ $? -ne 0 ]
then
echo "\n\nA PROBLEM was encountered starting AUTOMOUNTER, check log\n"
echo "Trying to continue anyway..."
fi
fi
echo "Check if $BAKDIR is available"
ls -l $BAKDIR > /dev/null 2>&1
if [ $? -ne 0 ]
then
echo "\n\nA PROBLEM was encountered mounting ../images from CWS, check log\n"
mail_exit "RS/6000 node $HOST System backup FAILED!" "A PROBLEM was encountered mounting ../images from CWS, check $APPLOG" 1
fi
VER="`oslevel | cut -d'.' -f1-3`"
echo "Proceeding to system backup $BAKDIR/bos.obj.${HOST}.$VER"
mksysb -i -e $BAKDIR/bos.obj.${HOST}.$VER
if [ $? -ne 0 ]
then
echo "\n\nA PROBLEM was encountered during system backup please check...\n"
mail_exit "RS/6000 $HOST system backup FAILED!" "A PROBLEM was encountered during system backup\nPlease check logfile $APPLOG" 1
fi
echo "\n\n`date` SYSTEM BACKUP SUCCESSFUL !!!\n\n\n"
touch $APPLOG/bos.obj.${HOST}.successfull
cp /image.data $BAKDIR/image.data.${HOST}
cp /bosinst.data $BAKDIR/bosinst.data.${HOST}
fi