SVN备份脚本,配合cron,实现每天备份所有库一次,并删除3天前的备份。

#!/bin/bash
# Description:
#         This program is subversion data backup script
# History:
#         2010/09/19        FangYun        0.1
#—————————————————————
LogFile=/data/backup_svn/svnbackup.log
DATE=`date +%Y%m%d`
BakDir=/data/backup_svn
ReposLst=/data/backup_svn/conf/repos.lst
SvnDir=/data/svn_dir
SVNADMIN=/usr/local/bin/svnadmin
MAILADDR=fangyun@channelsoft.com

echo "svn backup start at $(date +"%Y-%m-%d %H:%M:%S")." >> $LogFile
echo "————————————————" >> $LogFile

if [ ! -d $BakDir/$DATE ]
then
   mkdir $BakDir/$DATE
fi

cd $BakDir
REPOS_LIST=`cat $ReposLst`
for repos in $REPOS_LIST
do
    reposData=$SvnDir/$repos
    destDir=$BakDir/$DATE/$repos
if [ -d $destDir ]
then
    echo "Backup directory have exist!" >>$LogFile
else
    $SVNADMIN hotcopy $reposData $destDir
    echo "Backup $repos done.">>$LogFile
fi
done

oldDir="$BakDir/"$(date +%Y%m%d –date=’3 days ago’)
if [ -d $oldDir ]
then
    rm -rf $oldDir >> $LogFile 2>&1
    echo "[$oldDir],Delete Old Directory Success!" >> $LogFile
else
    echo "[$oldDir],No Old Backup Directory!" >> $LogFile
fi

echo "————————————————" >> $LogFile
echo "svn backup end at $(date +"%Y-%m-%d %H:%M:%S")." >> $LogFile
echo " " >> $LogFile

#mail $MAILADDR -s svn-back_log < $LogFile

Advertisement
This entry was posted in 计算机.编程. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s