該程式為svn的增量備份指令碼,在實際中使用。
一、整體思路:
1、 設定系統需要處理的環境變數,如svn的安裝目錄、版本庫目錄、備份的目標目錄(backup_svn_root)等;
2、 將系統備份初始修訂號(每次提交時,系統自己儲存的乙個序號)儲存在資料夾svn_log_begin下(引數可配置)
3、 將本次備份結束修訂號儲存在資料夾svn_log_end(引數可配置)
4、 如果備份目標目錄不存在,則建立之;
5、 如果系統用專案列表備份目錄不存在(儲存所備份專案名稱),為初次執行任務,則建立之;
6、 如果系統用起始修訂號備份目錄(儲存所有專案各起始修訂號)不存在,為初次執行任務,則建立之;
7、 如果系統用結束修訂號備份目錄(儲存所有專案各結束修訂號)不存在,為初次執行任務,則建立之;
8、 刪除原來的專案列表;
9、 按備份時間的年月日生成備份目標目錄的名稱;如已經存在該名稱的目錄(已經備份),則跳轉到checkback,提示清空目錄再備份;
10、 在備份目標資料夾下建立本次備份的目標目錄、專案列表儲存目錄、修訂號起/始儲存目錄,用於將系統的對應目錄轉移到本此備份目錄下,記錄此次備份的情況;
11、 拷貝md5校驗程式到目標盤,以備還原時校驗用;
開始備份svn**庫__增量方式
12、 迴圈呼叫'dir /ad /b',判斷為資料夾(專案名稱),則呼叫子程式work_dump_incremental.bat 專案名稱,以對各個專案逐個增量備份;
13、 子程式呼叫結束---各專案備份完畢,則將源專案路徑根目錄下的所有檔案備份---包含認證檔案、日誌等;
14、 退出系統。
匯出指令碼主程式及說明:
echo 2011-01-31 copyright v2.0(v1.0為熱點拷貝和整專案dump方式)
rem 本指令碼工具為增量備份svn版本用總指令碼,與之配套的指令碼為svn_load_in.bat、work_load_in.bat
echo off
rem subversion的安裝目錄
set svn_home="c:\program files\visualsvn server"
rem 設定svn**庫所在的驅動器碟符需要修改
set svn_drv=d:
rem 所有版本庫的父目錄需要修改
set svn_root=d:\repositories
rem 設定svn**庫所在的目錄
set svn_dir=repositories
rem 設定當前已經備份專案列表儲存目錄
set svn_log=svn_log
rem 設定當前備份專案的起始修訂號儲存目錄,其下存以對應的專案名稱命名的檔案,檔案中儲存起始修訂號
set svn_log_begin=svn_log_begin
rem 設定當前備份專案的結束修訂號儲存目錄,其下存以對應的專案名稱命名的檔案,檔案中儲存結束修訂號
set svn_log_end=svn_log_end
rem 備份的碟符需要修改
set backup_svn_drv=f:
rem 備份的目錄需要修改
set backup_svn_root=f:\backupsvn
set backup_svn_folder=\backupsvn
rem 如果備份目錄不存在,則建立之-----資料來源部分
if not exist %backup_svn_root% md %backup_svn_root%
rem 如果專案列表備份目錄不存在,則建立之
if not exist %svn_drv%\%svn_log% md %svn_drv%\%svn_log%
rem 如果修起始訂號備份目錄不存在,則建立之
if not exist %svn_drv%\%svn_log_begin% md %svn_drv%\%svn_log_begin%
rem 如果結束修訂號備份目錄不存在,則建立之
if not exist %svn_drv%\%svn_log_end% md %svn_drv%\%svn_log_end%
rem 刪除原來的專案列表
del /q %svn_drv%\%svn_log%\*.*
set backup_date=%date:~0,10%
echo %backup_date%
set backup_path=%backup_svn_folder%\%backup_date%_dump
set backup_directory=%backup_svn_root%\%backup_date%_dump
if exist %backup_directory% goto checkback
rem 建立-----目標資料部分
echo建立備份目錄%backup_directory>>%svn_root%/backup.log
mkdir %backup_directory%
mkdir %backup_directory%\%svn_log%
mkdir %backup_directory%\%svn_log_begin%
mkdir %backup_directory%\%svn_log_end%
copy /y %svn_home%\bin\md5sum.exe %backup_directory%\md5sum.exe
%svn_drv%
cd \
cd %svn_dir%
echo開始備份svn**庫__增量方式》%svn_root%/backup.log
rem 驗證目錄是否為版本庫,如果是則取出名稱備份[不用校驗,對不設主幹、標籤、分支的資料性專案也做備份]
rem for /r %svn_root% %%i in (.) do @if exist "%%i\conf\" %svn_root%\******backup.bat "%%~fi" %%~ni
rem 列舉資料夾(專案名),進入備份具體專案子流程
for /f %%d in ('dir /ad /b') do call %svn_root%\work_dump_incremental.bat %%d
goto end
:checkback
echo 備份目錄%backup_directory%已經存在,請清空。
goto exit
:end
copy /y %svn_root%\*.* %backup_directory%\*.*
echo備份svn**庫完畢》%svn_root%/backup.log
set backup_date=
%svn_drv%
cd \
@echo on
:exit
附件1:匯出指令碼主程式:
二、匯出指令碼各專案具體執行程式
設計思路:
1、 如輸入引數為空,則退出本個專案備份(主要為除錯用)
2、 將本次備份的專案名稱追加到%svn_drv%\%svn_log%\proj_lst.txt列表中;
3、 設定bak_to為需要備份生成的檔名(含路徑);
設定本次備份的預設最小、最大修訂號均為零set lower=0,set upper=0
4、 如為初次備份(無%svn_drv%\%svn_log_end%\%svn_project%.txt),則到mk_end_log處新建
5、 否則,將上次備份的結束修訂號copy到本次準備備份的起始修訂號資料夾(使用時加1);
6、 :mk_end_lo g:呼叫svnlook.exe,將當前系統的修訂號取出;
7、 如果當前的修訂號為0,則不需備份
8、 如為初次備份,則用初始化的lower=0;否則,取出上次備份後的版本號,並做+1處理(注意此演算法未在98系統驗證);
9、 :bakup 備份專案的起始修訂號;
10、 呼叫svnadmin.exe進行增量備份;
11、 呼叫bzip2進行壓縮;
12、 儲存md5校驗,以備檢查備份檔案是否被非法修改;
13、 記錄備份日誌、時間戳;
14、 每次更新已經備份的專案列表;
15、 結束
echo 2010-05-27 copyright v2.0(v1.0為熱點拷貝和整專案dump方式)
rem 本指令碼工具為增量備份svn版本用子執行指令碼,與之配套的指令碼為svn_load_in.bat、work_load_incremental.bat
echo 進入單專案備份
set svn_project=%1
rem 引數不正確,結束
if "%1"=="" goto no_args
rem 將專案名稱新增到專案列表,以備還原時需要
echo %svn_project%>>%svn_drv%\%svn_log%\proj_lst.txt
for /f "tokens=1,2,3 delims=- " %%1 in ('date /t') do set date=%%1-%%2-%%3
for /f "tokens=1,2 delims=:" %%1 in ('time /t') do set time=%%1:%%2
rem bak_to為需要備份生成的檔名,包含專案名和日期、時間,如需要自動匯入時,則不能要日期時間等標識(@符號後面的去掉)【重要】
rem set bak_to=%backup_directory%\%svn_project%@%date%@%time%
set bak_to=%backup_directory%\%svn_project%
set lower=0
set upper=0rem
資料備份方案
客戶名稱 備份管理系統設計方案 科技 2016年9月 目錄一 專案概述 某某科技公司將會根據 客戶名稱 的網路實際需求制定一套完整的資料備份,災難恢復及伺服器整合和虛擬化方案。乙個完整的企業資料備份與恢復解決方案就意味著 保護 效能與完美的整合,一條龍式的服務,包括產品 服務與支援。我們在選擇備份系...
企業資料備份方案
各企業單位因其業務的特點,要求企業業務網路能夠長時間的安全可靠的執行,以提供其工作人員和企業客戶良好的經營環境。然而,隨著計算機網路技術的發展和業務拓展的需要,很多現代相繼開通了遠端聯網和遠端業務或inter 網上業務,其企業業務網路也從區域網發展成廣域網,因而很容易受到社會上黑客的攻擊和惡性病毒的...
企業資料備份方案
各企業單位因其業務的特點,要求企業業務網路能夠長時間的安全可靠的執行,以提供其工作人員和企業客戶良好的經營環境。然而,隨著計算機網路技術的發展和業務拓展的需要,很多現代相繼開通了遠端聯網和遠端業務或internet網上業務,其企業業務網路也從區域網發展成廣域網,因而很容易受到社會上黑客的攻擊和惡性病...