#!/bin/sh
# full and incr backup script
# created 27 Sep 99
# Based on a script by Daniel O'Callaghan <danny@freebsd.org>

#Change the 5 variables below to fit your computer/backup

COMPUTER=myserver                 # name of this computer
DIRECTORIES="/etc /home"                # directoris to backup
BACKUPDIR=/backup/backups         # where to store the backups
TIMEDIR=/backup/backups/last-full # where to store time of full backup
TAR=/bin/tar			  # name and locaction of tar

#You should not have to change anything below here

PATH=/usr/local/bin:/usr/bin:/bin
DOW=`date +%a`              # Day of the week e.g. Mon
DOM=`date +%d`              # Date of the Month e.g. 27
DM=`date +%d%b`             # Date and Month e.g. 27Sep

# On the 1st of the month a permanet full backup is made
# Every Sunday a full backup is made - overwriting last Sundays backup
# The rest of the time an incremental backup is made. Each incremental
# backup overwrites last weeks incremental backup of the same name.
#
# if NEWER = "", then tar backs up all files in the directories
# otherwise it backs up files newer than the NEWER date. NEWER
# gets it date from the file written every Sunday.

                
if [ $DOM = "01" ]; then  # monthly full backup
	NEWER=""
	$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DM.tgz $DIRECTORIES
fi

if [ $DOW = "Sun" ]; then # weekly full backup
        NEWER=""
	NOW=`date +%d-%b`  
	echo $NOW > $TIMEDIR/$COMPUTER-full-date #update full backup date
	$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DOW.tgz $DIRECTORIES

else    #make incremental backup - overwrite last weeks
	NEWER="--newer `cat $TIMEDIR/$COMPUTER-full-date`" #get date of last full backup
	$TAR $NEWER -z -c -f $BACKUPDIR/$COMPUTER-$DOW.tgz $DIRECTORIES
fi
                   
