<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    jasmine214--love

    只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
    posts - 731, comments - 60, trackbacks - 0, articles - 0

    svn dump 全自動備份腳本

    Posted on 2010-09-26 11:24 幻海藍夢 閱讀(2009) 評論(1)  編輯  收藏 所屬分類: Linux版本管理

    原文:http://carywu.blog.51cto.com/13185/207571
    最近要給美國的SVN服務器做升級,由于這臺服務器有一定年份了,在本公司也算是個三朝元老,保存了多少code啊!。為了保險起見,老板將遷移的工作鄭重的交到我的手上。在欣欣然的同時也顫抖著。
    不過還好我已經對其輕車熟路,在新的服務器上安裝好apache和subversion軟件后,開始著手備份與遷移了。
    由于舊服務器版本太低,沒有svnsync的功能,考慮再三,我選擇使用了svnadmin dump去做備份。
    可是有一個問題了,每個庫的版本都有幾萬了,然后服務器上有十幾個庫,我可沒耐心一個個輸入svnadmin dump去備份它們,那會讓我覺得長夜漫漫,難于睡眠!
    管理員的最高境界就是花力氣去懶惰,我很向往這個境界。所以,我花了些時間寫了個shell,就讓系統自己去干這些事情吧!

    shell功能:
    只需要大家修改源庫所在的目錄,和備份存放的目錄就可以了。
    第一次運行會全部備份,然后以后每次運行會增量備份。
    所以,恢復的時候,先恢復全部備份,然后依次按照日期恢復增量備份即可。

    #!/bin/sh

    #########################################################
    # this script is used for svn repository backup
    # written: carywu
    # date: 2008/11/21
    #########################################################

    ###################################
    # mail address for status updates
    #  - This is used to email you a status report
    ###################################
    MAILADDR=carywu@yahoo.cn

    ###################################
    # backup directory,please change it
    # - This is the path to the backup directory
    ###################################
    BACKUPDIR=/svnroot/svnback

    ###################################
    # svn repository directory, please change it.
    # - This is the path to the directory you want to archive
    ###################################
    SVNDIR=/svnroot/repository

    ###################################
    # HOSTNAME and project list
    #  - This is also used for reporting
    ###################################
    ProjectLst=$BACKUPDIR/projectlist.txt

    ###################################
    # svn backup log path and date
    #  - This is used to log result
    ###################################
    LogFile=$BACKUPDIR/svnback.log
    DATE=`date +%Y%m%d-%T`
    ###################################
    # svn command path
    # - This is the path to the directory you want to archive
    ###################################
    export PATH=$PATH:/bin:/usr/bin:/usr/local/bin

    # our actual rsyncing function
    do_accounting()
    {
            echo " " >> $LogFile
            echo " " >> $LogFile
            echo "###########################" >> $LogFile
            echo "$DATE" >> $LogFile
            echo "###########################" >> $LogFile
            cd $BackDir
    }

    do_svndump()
    {
       PROJECTLIST=`cat $ProjectLst`
       cd $SVNDIR
       for project in $PROJECTLIST
              do
              echo "begin to dump $project databases" >> $LogFile
                    if [ ! -f $BACKUPDIR/$project.dump ]
                    then
                    YOUNGEST=`svnlook youngest $project`
                    svnadmin dump $project > $BACKUPDIR/$project.dump
                    echo "OK,dump file successfully!!"
                    echo "$YOUNGEST" > $BACKUPDIR/$project.youngest
                    else
                            echo "$project.dump existed,will do increatment job" >> $LogFile
                            if [ ! -f $BACKUPDIR/$project.youngest ]
                            then
                            echo "error, no youngest check!" >> $LogFile
                            else
                                    PREVYOUNGEST=`cat $BACKUPDIR/$project.youngest`
                                    NEWYOUNGEST=`svnlook youngest $project`
                                    if [ $PREVYOUNGEST -eq $NEWYOUNGEST ]
                                    then
                                            echo " no database updated!" >> $LogFile
                                    else
                                            LASTYOUNGEST=`expr $PREVYOUNGEST + 1`
                                            echo "last youngest is $LASTYOUNGEST" >> $LogFile
                                            svnadmin dump $project --revision $LASTYOUNGEST:$NEWYOUNGEST --incremental > $BACKUPDIR/$project-$LASTYOUNGET-$NEWYOUNGEST.$DATE
                                            echo "$NEWYOUNGEST" > $BACKUPDIR/$project.youngest
                                    fi
                            fi
      fi
            done
    }

    # our post rsync accounting function
    do_mail()
    {
       mail $MAILADDR -s svn-back_log < $LogFile
    }
    # some error handling and/or run our backup and accounting
    do_accounting && do_svndump && do_mail


    Feedback

    # re: svn dump 全自動備份腳本  回復  更多評論   

    2013-07-03 10:12 by
    這是同一臺服務器備份嗎
    主站蜘蛛池模板: 欧洲乱码伦视频免费| 亚洲免费日韩无码系列| 亚洲精品GV天堂无码男同| 国产伦一区二区三区免费| 国产免费A∨在线播放| 精品亚洲成a人片在线观看少妇| 久久久久免费看黄A片APP| 人成电影网在线观看免费| 亚洲精品视频免费看| 哒哒哒免费视频观看在线www | avtt天堂网手机版亚洲| 国产一区二区视频免费| 免费精品一区二区三区第35 | 久久狠狠躁免费观看2020| 中文字幕在线日亚洲9| 在线A亚洲老鸭窝天堂| 性做久久久久久免费观看| a级毛片100部免费观看| 亚洲精品国产第一综合99久久| 亚洲∧v久久久无码精品| 国产无遮挡吃胸膜奶免费看| 情侣视频精品免费的国产| 国产拍拍拍无码视频免费| 狠狠入ady亚洲精品| 亚洲AV人无码激艳猛片| 亚洲av无码成人精品区| 免费a级毛片高清视频不卡| 国产一级片免费看| 全黄A免费一级毛片| 国外亚洲成AV人片在线观看| 免费可以在线看A∨网站| 国产成人一区二区三区视频免费| 国产精品亚洲专区一区| 亚洲AV色吊丝无码| 亚洲一卡2卡三卡4卡有限公司| 亚洲?V乱码久久精品蜜桃| 大地资源二在线观看免费高清 | 国产免费人成视频在线播放播| 亚洲综合激情五月色一区| 91精品国产亚洲爽啪在线观看| 亚洲无人区午夜福利码高清完整版 |