windows下svn備份(詳解)

來源:互聯網
上載者:User

一、採用svn內建備份功能進行完全備份,需要下面兩個檔案,放在倉庫的父目錄裡面。

1)simplebackup.bat

@echo 正在備份版本庫%1......
@%SVN_HOME%\bin\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2
@echo 版本庫%1成功備份到了%2!

(注意:此檔案內容就這三行,無需做任何修改)

2)backup.bat

echo off
rem Subversion的安裝目錄
set SVN_HOME="F:\Program Files\Subversion"    
rem 所有版本庫的父目錄
set SVN_ROOT=E:\svnrepository                           
rem 備份的目錄
set BACKUP_SVN_ROOT=F:\share\all                   (如果是區域網路中的另一台機子,那麼等號後面可以寫\\192.168.0.*\share\all,不過要特別注意的是,share檔案夾必須設成共用,既要能讀還要能寫,這樣才能把倉庫寫進去)
set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%
if exist %BACKUP_DIRECTORY% goto checkBack
echo 建立備份目錄%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.log
mkdir %BACKUP_DIRECTORY%
rem 驗證目錄是否為版本庫,如果是則取出名稱備份
for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" %SVN_ROOT%\simplebackup.bat "%%~fI" %%~nI
goto end
:checkBack
echo 備份目錄%BACKUP_DIRECTORY%已經存在,請清空。
goto end
:end

(注意:backup.bat檔案只需根據實際情況修改紅色字型的三個路徑,如果路徑中包含的檔案夾名稱存在空格,整個路徑需要用雙引號括起來,例如上例中Subversion的安裝目錄)

完全備份的結果是在目標路徑中(上例就是在all的檔案夾下)產生一個以日期為名稱的檔案夾,裡面就是各個倉庫了。

二、增量備份

本人目前不知道如何寫增量備份的指令碼,所以只能老老實實用命令了。

點擊開始——運行——cmd

進入到svn服務端安裝路徑下的bin檔案

cd f:\Program Files\Subversion\bin

svnadmin dump E:\svnrepository\local --revision 9:13 --incremental > E:\zengliang\add(注意,revision和incremental和兩個橫杆之間不要有空格,這是後來驗證的,下面圖片有誤)

上述命令是說把local倉庫的第9到13版本增量備份到e盤的zengliang檔案夾中,運行後產生了一個名為add的檔案,運行命令看

 

 

如果要把增量備份恢複回來,則使用svnadmin load命令,例如

svnadmin load E:\svnrepository\local < E:\zengliang\add

運行命令後的圖示大概如下:

 

 

 目前我們公司的svn庫備份採用每周完全備份,每天增量備份的策略,這樣如果一旦發生故障,可以拿最後一次的完全備份檔案,然後把之後的增量備份按版本先後恢複回去,就可以了;完全備份可以設定系統的任務計劃,定時執行。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.