<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
    這是同一臺服務器備份嗎
    主站蜘蛛池模板: 国产在线观看免费av站| 亚洲а∨精品天堂在线| 午夜国产精品免费观看 | 人人爽人人爽人人片av免费| 国产网站免费观看| 激情无码亚洲一区二区三区 | 两个人看的www免费高清| 亚洲视频在线一区二区| 久久久久亚洲精品日久生情| 69精品免费视频| 暖暖免费在线中文日本| 亚洲成av人在线视| 色欲国产麻豆一精品一AV一免费 | 亚洲一区精品视频在线| 最近中文字幕免费mv视频8| 亚洲精品无码永久在线观看男男 | 国产成人在线免费观看| 国产成人不卡亚洲精品91| 亚洲M码 欧洲S码SSS222| 国产精品美女久久久免费| 大地资源免费更新在线播放| 亚洲综合国产成人丁香五月激情 | 8090在线观看免费观看| 亚洲自国产拍揄拍| 免费永久国产在线视频| 成人无码视频97免费| 精品亚洲成a人片在线观看少妇| 69式国产真人免费视频| 国产亚洲午夜精品| 久久精品国产精品亚洲艾草网 | 国产精品成人免费福利| 亚洲色精品三区二区一区| 久久精品国产精品亚洲人人 | 中文字幕在线观看亚洲视频| 国产一区二区三区免费视频| 免费观看一区二区三区| 亚洲色偷偷综合亚洲av78| 亚洲乱码日产一区三区| 一级特黄录像免费播放肥| 亚洲在成人网在线看| 日韩不卡免费视频|