TCLUG Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Fullbru and Incbru



Here are two bru scripts that come with the version for Digital Unix.
"fullbru" just calls incbru with a level of 0 (ie, full backup).  Incbru
is an incremental.

You can easily put fullbru into your crontab and it will mail the person
designated an output.

The files are attached.
 
=-=-=-=-=-=
Robert Hayden			rhayden@means.net	       UIN: 3937211
IP Network Administrator	http://rhayden.means.net
MEANS Telcom			(612) 230-4416 
:
#	incbru    bru incremental backup script  
#
#  RCS CHANGE LOG 
#
#	incbru,v
# Revision 1.3  1994/05/07  23:09:57  jeff
# Added RCS keywords.
#	
#
#  DESCRIPTION
#
# 	This script will perform different levels of incremental
#	backups using bru.
#
#	It will backup all files that have changed since doing a
#	backup with a lower level.
#
#	If no argument is specified, it will do a level 1 backup
#	and will backup all files since the last full (level 0)
#	backup.  If the level 0 backup does not exist, it will
#	do that instead.
#
#  NOTES
#
#	Feel free to customize this script to handle your
#	specific backup requirements.  This script is designed
#	to do basic backups of the entire system from the root
#	directory. 
#	
#

# PLEASE EDIT THIS FILE FOR YOUR SITE BEFORE USE
#clear
#echo
#echo FULLBRU and INCBRU Scripts
#echo
#echo This script is designed as a template for using BRU from within
#echo system scripts.  We guarantee only that it will take up space
#echo on your disk until you have made edits appropriate to your site.
#echo
#echo Once edited, please remove this notice.
#echo
#exit 255
# PLEASE EDIT THIS FILE FOR YOUR SITE BEFORE USE

BRUDEV=""			# name of backup device, use default if 
				# none is specified

BRUOPTS="-vvvv"			# bru options

DIRS="/"			# directories or filesystems to back up

LOGFILE="/bru/logfile.log"			# log file

MAILTO=root			# where to mail the results

case "$#" in
    0)
	LVL=1		# no argument, so do a level 1 backup
	;;
    1)
	LVL=$1
	;;
    *)
	echo "usage: incbru [level]"
	exit 1
	;;
esac



#
# check for legal backup level
#
case $LVL in
	0|1|2|3|4|5|6|7|8|9)
		;;
	*)
		echo "incbru: $LVL is an illegal backup level"
		exit 1
	;;
esac

#
# if level 0, do a full backup
#
DATEFILE=""
if [ "$LVL" -eq 0 ]
then
	DATEFILE=""
else
	PREVLVL=`expr $LVL - 1`		# previous backup level	
	echo "PREVLVL = $PREVLVL"
	#
	#  find date marker file for previous level backup
	#
	i=0
	while [ "$i" -le "$PREVLVL" ]	
	do
		FILE=/etc/BRULEVEL$i
		if [ -f "$FILE" ]
		then
			DATEFILE=$FILE
			if [ "/etc/BRULEVEL${PREVLVL}" = "$FILE" ]
			then
				break	# found previous date marker file
			fi
		fi

		i=`expr $i + 1`
	done 
fi

if [ "$DATEFILE" = "" ]
then
	if [ "$LVL" -ne 0 ]
	then
		echo "incbru: No previous backup less than Level $LVL"
		LVL=0
	fi
	echo "Performing Full Backup (Level 0)"
else
	echo "Performing Level $LVL Backup"
	BRUOPTS="$BRUOPTS -n $DATEFILE"
fi

#
#  set up bru command that will do the backup, use default device
#  from brutab if none is specified
#
if [ "$BRUDEV" != "" ]
then
	BRUCMD="bru -c $BRUOPTS -f $BRUDEV $DIRS"
else
	BRUCMD="bru -c $BRUOPTS $DIRS"		# use default device 
fi

#
#  create a temporary date marker file.  if the backup is
#  successful, this will be renamed
#
MARKER=/etc/BRULEVEL${LVL}
TMP=$MARKER.err
TS=`date`
echo "$TS - Started BRU Level $LVL Backup\n\tcommand = '$BRUCMD'" > $TMP 


#
#  change to the root directory and execute the bru backup.  write
#  output to log file if one is specified
#
BRUEXIT=2
cd /	
if [ "$LOGFILE" != "" ]
then
	$BRUCMD > $LOGFILE 2>&1
	BRUEXIT=$?
else
	$BRUCMD 2>&1
	BRUEXIT=$?
fi


#
#  check the exit code.  if greater than or equal to 2, we've
#  got a problem
#
TS=`date`
if [ "$BRUEXIT" -ge 2 ]
then
	echo "incbru: ERROR in BRU Backup"
	echo "$TS - ERROR IN BRU BACKUP, check log file: '$LOGFILE'" >> $TMP 
	mail $MAILTO < $TMP 
	exit 2
else
	if [ "$BRUEXIT" -eq 0 ]
	then
		echo "BRU Level $LVL Backup successful"
	else
		# exit code = 1
		echo "BRU Level $LVL Backup completed (with warnings)"
	fi
	mv $TMP $MARKER 
	echo "$TS - BRU Level $LVL Backup completed, results in log file: '$LOGFILE'" | mail $MAILTO
	exit 0
fi
:
#	fullbru    bru full backup script  
#
#  RCS CHANGE LOG 
#
#	fullbru,v
# Revision 1.3  1994/05/07  23:09:56  jeff
# Added RCS keywords.
#	
#
#  DESCRIPTION
#
#  	This script will perform a complete backup
#	(level 0) of all files specified in the
#	incbru script
#
incbru 0