快捷搜索:   nginx

Linux系统SubVersion定期备份完整脚本

    具体配置请根据自己需要调整。

    环境:Centos5

    svn 目录是在/svn上。

    另外,记的在你的/ 下面建如下的目录

    # mkdir -p /backup/svn/data/

    # mkdir -p /backup/svn/daily/

    脚本功能:定期对一些项目进行完整备份。

    project.lst 文件格式如下:

    project1

    project2

    备份脚本如下:

    # !/bin/sh

    #

    #

    # subversion完整备份的脚本,调整好后使用crontab -e放到自动执行里面即可。

    #

    # 备份日志文件

    LogFile=/backup/svn/svnbak.log

    DATE=`date +%Y%m%d`

    # 备份目录

    BakDir=/backup/svn/data

    # 日常备份目录,如果有

    DailyDir=/backup/svn/daily

    # 要备份的项目列表文件,只有项目名

    ProjectLst=/backup/svn/project.lst

    # 所有项目都保存在这个目录下

    SvnDir=/svn

    #svnadmin 程序的路径

    SVNADMIN=/usr/bin/svnadmin

    echo " " >> $LogFile

    echo " " >> $LogFile

    echo "——" >> $LogFile

    echo $(date +"%y-%m-%d %H:%M:%S" ) >> $LogFile

    echo "——" >> $LogFile

    cd $BakDir

    # 读取项目列表

    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 此处根据crontab 的时间调整,例如一周一次备份,此处保留了5 份备份,以前的删除

    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 *

顶(0)
踩(0)

您可能还会对下面的文章感兴趣:

最新评论