#!/bin/sh # full and incremental backup script # created 07 February 2000 # Based on a script by Daniel O'Callaghan # and modified by Gerhard Mourani # modified for tape use by Chad Amberg #Change the 3 variables below to fit your computer/backup DIRECTORIES="/etc /home/accpac " # directories to backup BACKUPTO=/dev/tape # where to store the backups TAR=/bin/tar # name and locaction of tar LOGLOCATION=/var/log/backup #You should not have to change anything below here PATH=/usr/local/bin:/usr/bin:/bin START=`date +%s` LOGDATE=`date "+%Y.%m.%d"` # Daily full backup NEWER="" echo "Starting Backup" >> $LOGLOCATION/$LOGDATE.backup.log echo `date` "***** starting backup *****" >> $LOGLOCATION/$LOGDATE.backup.log if mt -f /$BACKUPTO status | grep "ONLINE"; then echo "***** finding sockets" find $DIRECTORIES -type s > sockets # echo "***** setting compression on" # mt -f /$BACKUPTO compression 1 echo `date` "***** setting type to DLT 35 Compressed *****" mt -f /$BACKUPTO setdensity 0x85 echo `date` "***** archiving *****" >> $LOGLOCATION/$LOGDATE.backup.log $TAR $NEWER -cf $BACKUPTO $DIRECTORIES --exclude-from=sockets --absolute-names --totals #Print out inventory of tape to a log file for easy greping echo `date` "**** automatic inventory of tape *****" >> $LOGLOCATION/$LOGDATE.backup.log tar -tvf /dev/tape --totals >> $LOGLOCATION/$LOGDATE.backup.log echo `date` "***** tape-drive status *****" >> $LOGLOCATION/$LOGDATE.backup.log mt -f /$BACKUPTO status >> $LOGLOCATION/$LOGDATE.backup.log echo `date` "***** ejecting tape *****" >> $LOGLOCATION/$LOGDATE.backup.log mt -f /$BACKUPTO offline >> $LOGLOCATION/$LOGDATE.backup.log echo `date` "***** end time-----" >> $LOGLOCATION/$LOGDATE.backup.log else echo `date` "***** WARNING TAPE DRIVE IS OFFLINE, NO BACKUPS PERFORMED-----" >> $LOGLOCATION/$LOGDATE.backup.log fi FINISH=`date +%s` diff=$((FINISH - START)) echo "***** Total Run Time: " >> $LOGLOCATION/$LOGDATE.backup.log HRS=`expr $diff / 3600` MIN=`expr $diff % 3600 / 60` SEC=`expr $diff % 3600 % 60` if [ $HRS -gt 0 ] then echo -n "$HRS hrs. " >> $LOGLOCATION/$LOGDATE.backup.log fi if [ $MIN -gt 0 ] then echo -n "$MIN mins. " >> $LOGLOCATION/$LOGDATE.backup.log fi if [ $SEC -gt 0 ] then if [ $MIN -gt 0 ] then echo "and $SEC secs." >> $LOGLOCATION/$LOGDATE.backup.log elif [ $HRS -gt 0 ] then echo "and $SEC secs." >> $LOGLOCATION/$LOGDATE.backup.log else echo "$SEC secs." >> $LOGLOCATION/$LOGDATE.backup.log fi fi