#!/bin/sh
#backup log file
LogFile=/backup/svn/svnbak.log
DATE=`date +%Y%m%d`
#backup directory
BakDir=/backup/svn/data
#daily backup directory
DailyDir=/backup/svn/daily
#project name list
ProjectLst=/backup/svn/project.lst
#svn directory
SvnDir=/svn/project
#svnadmin dirctory
SVNADMIN=/usr/bin/svnadmin
echo "" >> $LogFile
echo "" >> $LogFile
echo "-----------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "---------------------------" >> $LogFile
cd $BakDir
#read project name list
PROJECTLIST=`cat $ProjectLst`
for project in $PROJECTLIST
do
projectdata=$SvnDir/$project
destdir=$BakDir/$project
dumpfile=$DATE.$project.tgz
if [ -f $BakDir/$dumpfile ]
then
echo "backup file have exist!" >> $LogFile
else
$SVNADMIN hotcopy $projectdata $destdir --clean-logs
tar czvf $dumpfile $destdir >/dev/null
rm -fr $project
echo "backup $project done into $dumpfile ">> $LogFile
fi
##delete old tgz
oldfile="$BakDir/"$(date +%y%m%d --date='28 days ago').$project.tgz
if [ -f $oldfile ]
then
rm -f $oldfile >> $LogFile 2 >&1
echo "[$oldfile]Delete Old File Success!" >> $LogFile
else
echo "[$oldfile]No Old Backup File!" >> $LogFile
fi
done
#delete previous daily backup files
cd $DailyDir
rm -f *