通过网络映射进行增量备份

思路:先建立一个空文件夹,设置网络映射驱动器,之后把其他服务器的增量备份的内容通过网络映射传到网络映射文件夹

 

绿色 表示  注释

 

 

1.       在备份服务器上 创建要存放 备份内容的一个文件夹,共享文件夹,权限开放。

2.       为此文件夹aa创建映射路径:打开药映射的文件夹--》点击菜单栏的‘工具’---》网络映射驱动器

 

3.       在服务器端得配置库E:/repository目录下添加两个批处理脚本文件dump.batsvndump.bat和一个多库目录文件projectlist.conf

 

4.       Dump.bat文件的内容如下:

@ECHO OFF

net use z: //192.168.201.33/111                                                   映射地址、备份地址

rem 调用格式:dump 项目库名

if "%1"=="" goto no_args

set PROJECT=%1

if not exist %RAR_STORE%/%PROJECT% mkdir %RAR_STORE%/%PROJECT%

cd %RAR_STORE%/%PROJECT%

SET LOWER=0

SET UPPER=0

@echo 项目库%PROJECT%2...>> %Log_PATH%/%PROJECT%_log.txt

%SVN_LOOK% youngest %SVN_REPOROOT%/%PROJECT%> %Log_PATH%/A.TMP

@echo 项目库%PROJECT%3...>> %Log_PATH%/%PROJECT%_log.txt

@FOR /f %%D IN (%Log_PATH%/A.TMP) DO set UPPER=%%D

if %UPPER%==0 GOTO :N_EXIT

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

rem 取出上次备份后的版本号,并做+1处理(注意此算法未在98系统验证)

@FOR /f %%C IN (%Log_PATH%/%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

rem %RAR_CMD% a -df %PROJECT%_%UPPER%.rar %

rem 准备写备份日志信息

IF %LOWER% gtr 0 GOTO :WRITENOTE

@ECHO ------2-----%date% >> %Log_PATH%/%PROJECT%_log.txt

@echo -- 3-------添加备份文件 %PROJECT%_%UPPER%.rar,从[%LOWER%][%UPPER%] >> %Log_PATH%/%PROJECT%_log.txt

GOTO :COMPLETE

:WRITENOTE

@ECHO %date% >> %Log_PATH%/%PROJECT%_log.txt

@echo -- 4------添加增量备份文件 %PROJECT%_%UPPER%.rar,从[%LOWER%][%UPPER%] >> %Log_PATH%/%PROJECT%_log.txt

:COMPLETE

rem 下面一行用于拷贝备份文件到映射的驱动器上

rem copy %PROJECT%.rar %RAR_STORE%/%PROJECT%/

move %FILENAME%.dmp %RAR_STORE%/%PROJECT%/

del %Log_PATH%/A.TMP

@echo %UPPER% > %Log_PATH%/%PROJECT%_last_revision.txt

net use z: /delete

:N_EXIT

@echo 项目库%PROJECT%处理结束...>> %Log_PATH%/%PROJECT%_log.txt

@CD..

@exit /B

:no_args

@ECHO ON

@echo "正确调用方法: dump 项目库名"

 

5.       svndump.bat文件的内容如下:

echo off

rem Subversion的安装目录及执行文件

set SVN_HOME="C:/Program Files/VisualSVN Server/bin"                /VisualSVN Server/bin目录

set SVN_ADMIN=%SVN_HOME%/svnadmin.exe                                    svnadmin.exe 所在目录  

set SVN_LOOK=%SVN_HOME%/svnlook.exe                                          svnlook.exe 所在目录 

rem 配置库仓库根目录

set SVN_REPOROOT=E:/repository                                                         E:/repository 多库时,多库的根目录  

rem 压缩命令

set RAR_CMD="C:/Program Files/WinRAR"                                           WinRAR 压缩文件的安装目录

rem 增量备份文件存放路径

set RAR_STORE="z:"

rem 日志及最后一次备份修订号存放文件目录,以下是跟增量备份脚本目录同一目录

set Log_PATH=E:/repository                                                                  E:/repository  生成的日志所在目录  

@echo 项目库%PROJECT%处理1...>> %Log_PATH%/%PROJECT%_log.txt

rem 读取项目库列表文件,并忽略其中;开头的行

FOR /f "eol=;" %%C IN (E:/repository/projectlist.conf) DO call E:/repository/dump.bat %%C     根据文件所在地放进行修改

 

6.       projectlist.conf的文件内容如下:此列表对应库的列表。

 

假如服务器端得配置库E:/repository目录下有两个库:test、repo,则projectlist.conf文件的内容:

repo

test

 

7.       设置svndump.bat文件到任务计划里面,每次自动执行增量备份。

 

8.       还原增量备份的内容,进入dmp文件所在文件夹,在cmd下面运行如下命令:

svnadmin load 要恢复的版本库路径及名称 < 导出的命名

例:svnadmin  load E:/svnroot/project1<dumpfile

       或者把几个增量备份文件同时写在一个bat脚本中,运行这个脚本还原 即可。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值