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(飛云小俠) 閱讀(777) 評論(0)  編輯  收藏 所屬分類: 其他

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

          導航

          統計

          公告

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

          我的郵件
          cnscud # gmail


          51La

          常用鏈接

          留言簿(15)

          隨筆分類(113)

          隨筆檔案(103)

          相冊

          友情鏈接

          技術網站

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 合水县| 枣阳市| 兖州市| 手游| 韶关市| 达州市| 海安县| 新竹市| 西和县| 龙川县| 新竹县| 梅河口市| 大同市| 泰安市| 紫金县| 南召县| 托克逊县| 吉林省| 云和县| 南京市| 锡林浩特市| 舟曲县| 浪卡子县| 河西区| 武功县| 澄迈县| 内黄县| 唐海县| 武山县| 平顺县| 独山县| 苍梧县| 密山市| 旺苍县| 山东省| 思南县| 北票市| 曲阜市| 拉萨市| 临城县| 奉节县|