Wednesday, April 1, 2009

Incremental backup using tar

#!/bin/bash
# Umaknta Samantaray
# Date 20/02/2009
# This script will keep backup of home directory on sunday and incremental on other days. Delete the 14 days files daily.
# mount -t smbfs //172.16.66.116/unixbackup /mnt/samba/ -o rw,username=usamantaray/flagstonere,gid=users,dmask=777,fmask=777
# /home/usamantaray/MYSCRIPTS/mysqldbbackup.sh

fullbackup() {
cat /dev/null > ${BACKUPDIR}/incriment.snapshot
tar -g ${BACKUPDIR}/incriment.snapshot -zcf ${BACKUPDIR}/${NEWDIR}${1}.home.tz $SDIR/${1}
}
incrimbackup() {
tar -g ${BACKUPDIR}/incriment.snapshot -zcf ${BACKUPDIR}/${NEWDIR}${1}.home.incr.tz $SDIR/${1}
}

DATE=`date +%Y%m%d`
NEWDIR=`hostname -s`.$DATE.home
BACKDIR=/export/backup
SDIR=/export/home

USERNAME=(`ls -1 ${SDIR}`)
#USERNAME=(`cd ${SDIR} && find . -maxdepth 1 -type d \! -name . | cut -d / -f 2`)
cd ${BACKDIR} && find ${BACKUPDIR} -maxdepth 1 -name '2[0-9][0-9][0-9][0-9][0-9][0-9][0-9]'\
-type d -mtime +14 -exec rm -rf {} \;

for n in "${USERNAME[@]}"; do

if [ "`date +"%a"`" = "Sun" ] ; then
fullbackup $n
else
incrimbackup $n
fi
done

exit

No comments: