SVN備份指令碼完整資料

來源:互聯網
上載者:User

http://bbs.iusesvn.com/viewthread.php?tid=1179&highlight=%E5%A4%87%E4%BB%BD

  SVN備份指令碼完整資料 在先前的 備份 指令碼文章中 http://www.iusesvn.com/bbs/thread-623-1-1.html,我們討論了如何使用指令碼 自動 備份,可能由於沒有完整的歸檔整理,容易造成一些誤解,這裡給出我目前在用的 備份指令碼,便於大家參考。

指令碼總共設計了4個 檔案,如下:
【1】調度指令碼 svndump.bat,可以用windows的計劃任務設定自動備份 引用: @echo off
@echo ================================================
@echo  說明:啟動 備份時,需要配置兩個 環境變數
@echo    1、SVN_HOME     指定svn的安裝 目錄
@echo    2、RAR_CMD      指定RAR 命令列壓縮 工具所在目錄
@echo    3、SVN_REPOROOT 指定 項目庫的根目錄(多庫模式)
@echo  另外,如果需要異地 備份,可以指定為 網路映射Z盤
@echo ================================================
rem set logfile=svndump.log
set SVN_HOME=C:/Progra~1/Subversion/bin
set SVN_ADMIN="%SVN_HOME%/svn admin. exe"  (一定要記得加上"")
set SVN_LOOK="%SVN_HOME%/svnlook.exe"   (一定要記得加上"")
set SVN_REPOROOT=e:/svn/repository
set RAR_CMD="C:/Progra~1/WinRAR/Rar.exe"
rem if not exist z:/nul net use z: //192.168.2.226/g$/svndump

rem 讀取項目庫列表檔案,並忽略其中;開頭的行
FOR /f "eol=;" %%C IN (projectlist. conf) DO  @call dump.bat %%C 【2】備份指令碼 dump.bat,由svndump.bat調度,有入口參數 引用: @ECHO OFF
rem 調用格式:dump 項目庫名
if "%1"=="" goto no_args
set PROJECT=%1
if not exist %PROJECT% mkdir %PROJECT%
cd %PROJECT%
SET LOWER=0
SET UPPER=0
@FOR /f %%D IN ('%SVN_LOOK% youngest %SVN_REPOROOT%/%PROJECT%') DO set UPPER=%%D
if %UPPER%==0 GOTO :N_EXIT

if not exist %PROJECT%_last_revision.txt GOTO :BAKUP

rem 取出上次 備份後的版本號碼,並做+1處理(注意此演算法未在98 系統驗證)
@FOR /f %%C IN (%PROJECT%_last_revision.txt) DO @set LOWER=%%C
@set /a LOWER=%LOWER%+1
rem 不需要 備份,則跳轉結束
IF %LOWER% gtr %UPPER% GOTO :N_EXIT

:BAKUP
SET FILENAME=%PROJECT%_%LOWER%_%UPPER%
@ECHO 開始 備份項目庫:%PROJECT%,組建檔案=%FILENAME%
%SVN_ADMIN% dump %SVN_REPOROOT%/%PROJECT% -r %LOWER%:head --incremental >%FILENAME%.dmp
%RAR_CMD% a -df %PROJECT%_%UPPER%.rar %FILENAME%.dmp

rem 準備寫 備份 日誌資訊
IF %LOWER% gtr 0 GOTO :WRITENOTE
if not exist %PROJECT%_log.txt @copy ../log.conf %PROJECT%_log.txt
@ECHO %date% >> %PROJECT%_log.txt
@echo  -- 添加 備份檔案 %PROJECT%_%UPPER%.rar,從[%LOWER%]到[%UPPER%] >> %PROJECT%_log.txt
GOTO :COMPLETE
:WRITENOTE
@ECHO %date% >> %PROJECT%_log.txt
@echo  -- 添加增量 備份檔案 %PROJECT%_%UPPER%.rar,從[%LOWER%]到[%UPPER%] >> %PROJECT%_log.txt

:COMPLETE
rem 下面一行用於拷貝 備份檔案到映射的磁碟機上
rem copy %PROJECT%.rar z:/%PROJECT%/

@echo %UPPER% > %PROJECT%_last_revision.txt
:N_EXIT
@echo 項目庫%PROJECT%處理結束...
@CD..
@exit /B
:no_args
@ECHO ON
@echo "正確調用方法: dump 項目庫名" 【3】項目庫列表 projectlist.conf,可以用windows的計劃任務設定自動備份 引用: ;**************************************************
;01. 公用資產庫
;    更新頻率: 低
;**************************************************
comm

;**************************************************
;02. 造價中心WEB應用系統(含人員資質和造價分析)
;    更新頻率: 一般
;**************************************************
dezx web

;**************************************************
;03. 造價中心地面工程台帳查詢系統
;    更新頻率: 終止
;**************************************************
;dmgc

;**************************************************
;04. 井下作業綜合 管理系統
;    更新頻率: 一般
;**************************************************
jxzy

;**************************************************
;05. ERP 使用者 許可權系統
;    更新頻率: 低
;**************************************************
erpuser 【4】日誌模版指令碼 log.conf,可以用來作為每個新備份項目的日誌模版 引用: 備份日誌:
//這是一個記錄檔的抬頭資訊,可以記錄一些有意義的資訊 這裡是我的項目庫 備份日誌執行個體 引用: 備份日誌:
星期一 2007-02-12 
-- 添加 備份檔案 dezxweb_794.rar,從[0]到[794] 
星期三 2007-02-28 
-- 添加增量 備份檔案 dezxweb_807.rar,從[795]到[807] 
星期日 2007-03-04 
-- 添加增量 備份檔案 dezxweb_808.rar,從[808]到[808] 
星期日 2007-03-11 
-- 添加增量 備份檔案 dezxweb_809.rar,從[809]到[809] 這個 備份的指令碼來自於 zhumingzhou的啟發,也非常感謝 david 幫我找到增量定義的方法。在此表示深深謝意。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.