All pastes #269590 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-12-06 17:59 UTC
rendered paste body
#!/bin/sh
# full and incremental backup script
# created 07 February 2000
# Based on a script by Daniel O'Callaghan <danny@freebsd.org>
# and modified by Gerhard Mourani <gmourani@videotron.ca>
# modified for tape use by Chad Amberg <http://www.bluestream.org>

#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