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

#!/bin/bash
# Description:
#         This program is subversion data backup script
# History:
#         2010/09/19        FangYun        0.1
#—————————————————————

ReposList=`cat /data/backup_svn/conf/repos.lst`
SVNADMIN=/usr/local/bin/svnadmin
SvnDir=/data/svn_dir
BakDir=/home/backup_244
LogFile=$BakDir/svnbackup.log
DATE=`date +%Y%m%d`

#Create backup direcotry
createDir(){
    if [ -d $BakDir/$DATE ] 
    then
        echo "[$BakDir/$DATE] directory has existed!" >> $LogFile
    else
        mkdir $BakDir/$DATE
    fi
}

#Backup SVN
backupSVN(){
    cd $SvnDir
    echo "Backup repositories start at $(date +"%Y-%m-%d %H:%M:%S")." >> $LogFile
    for repos in $ReposList
    do
        desRepos=$BakDir/$DATE/$repos
        $SVNADMIN hotcopy $repos $desRepos
        echo "Repository $repos has backuped." >> $LogFile
    done
    echo "Backup repositories end at $(date +"%Y-%m-%d %H:%M:%S")." >> $LogFile
}

#Delete old directory
deleteOld(){
    oldDir=$BakDir/$(date +%Y%m%d –date=’7 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
}

main(){
    echo "==================================================" >> $LogFile
    createDir
    backupSVN
    deleteOld
    echo "##################################################" >> $LogFile
    echo " " >> $LogFile
}

main

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