SubVersion定期完整備份腳本(Linux)

          創造共用協議:署名,非商業,保持一致   除經特別注明外,本文章版權歸JScud Develop團隊或其作者所有.
          署名,非商業用途,保持一致.   scud(飛云小俠)   JScud Develop

          說明:請根據自己需要調整. 本人不對此文章造成的任何后果負責,請慎重使用.

          腳本功能: 定期對一些項目進行完整備份.

          project.lst 文件格式如下:

          project1
          project2


          備份腳本如下:

          #!/bin/sh

          #
          # subversion data backup script
          # by scud http://www.jscud.com
          # 2005-11-27
          #
          # 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=/var/svn

          #svnadmin程序的路徑
          SVNADMIN=/app/subversion/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 *
            

           


          根據自己的設置配置好后,使用crontab 放到定時執行的任務里即可.

           

          增量備份的腳本目前還沒有...

           

          posted on 2005-11-27 22:25 Scud(飛云小俠) 閱讀(771) 評論(0)  編輯  收藏 所屬分類: 其他

          <2005年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統計

          公告

          文章發布許可
          創造共用協議:署名,非商業,保持一致

          我的郵件
          cnscud # gmail


          常用鏈接

          留言簿(15)

          隨筆分類(113)

          隨筆檔案(103)

          相冊

          友情鏈接

          技術網站

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 静乐县| 德保县| 祥云县| 桃源县| 邮箱| 五原县| 彰武县| 瓦房店市| 南召县| 兴城市| 高清| 永善县| 禹城市| 南城县| 饶阳县| 资兴市| 天镇县| 湘潭县| 安平县| 潢川县| 称多县| 徐汇区| 泸定县| 灵石县| 昌图县| 凤台县| 肇庆市| 兴文县| 勐海县| 墨竹工卡县| 北安市| 永福县| 南部县| 德兴市| 白山市| 清涧县| 翁源县| 永济市| 聂拉木县| 仙桃市| 吉林省|