关键词不能为空

当前您在: 主页 > 英语 >

SVN备份还原操作手册

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-16 00:45
tags:

-

2021年2月16日发(作者:成绩单英语)


SVN


备份还原操作手册



一、命令备份



1.



svnadmin dump


全量备份



进入


SVN


服务端安装目录下运行


svnadmin d ump


命令


(C:/Repositories/QA



SVN


库中项


目目录 ,



为备份文件名


)



2.



svnadmin dump


增量备份


(


以增量把版本库


8


转存到

< p>
.1



-r [--revision] :


指定版


本;


--incremental :


以增量方式进行转存


)



3.



svnadmin dump< /p>


还原


(


先创建一个新的版本库,


再还原完全备份,有增量备份的再还


原增量备份


)(


进入


SVN


服务端安装目录下调用 命令创建


test


测试库


)



4.



运行


svnadmin load


还原 命令


(


增量还原同全量还原


)





二、脚 本备份


(


针对项目库备份


)


1.



svnadmin dump< /p>


全量备份脚本


(



SVN


库中添加全量备份脚本




需要安装


对应的压缩工具


)



2.



脚本内容



rem Subversion


的安装目录



set SVN_HOME=


rem


所有版本库的父目录



set SVN_ROOT=C:Repositories


rem


备份的目录



set BACKUP_SVN_ROOT=C:bak


rem


创建存放版本库的临时目录



set


BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%%date :~0,4%%date:~5,2%%date:~8,2%


if exist %BACKUP_DIRECTORY% goto checkBack



echo


%date:~0,4%%date:~5,2%% date:~8,2%:








%BACKU P_DIRECTORY%>>%SVN_ROOT%/


rem SVN

< p>
版本库自动备份时需要


rem


创建备份目录



md %BACKUP_DIRECTORY%


cd C:Program FilesVisualSVN Serverbin




dump C:RepositoriesQA > %BACKUP_DIRECTORY%FINANCE%date:~0,10%



rem


验证目录是否为版本库,如果是则取出名称备份



rem


for


/r%SVN_ROOT%%%I


in(.)do@ifexist


echo


开始压缩版本库,请不要中止


....



rem


%SVN_ROOT%-t zip%BACKUP_SVN_ROOT%%date:~0,4%%date:~5,2%%date:~8


,2%.zip%BACKUP_DIRECTORY%*-r>nul


echo


版本库压缩完成


!


rem


清除临时创建备份目录



rem rd/s/q%BACKUP_DIRECTORY%


goto end


:checkBack


echo


备份目录


%BACKUP_ DIRECTORY%


已经存在,请清空。



goto end


:end


echo on



3.



运行脚本



,会生成备份文件




4.



备份还原



将备份文件考到

< p>
SVN


服务器安装目录下,运行


SVN

< p>
还原命令







三、脚本备份

(


针对


SVN


仓库备份

< p>
)


1.



svnadmin dump


全量备份脚本

(



SVN


库中添加全量备份脚本


)


2.



脚本内容



:Begin


@echo off


setlocal enabledelayedexpansion


echo


正在准备备份所有版本库……



echo.



::

< br>设置


SVN


命令目录



set SVN_CMD=



::


设置所有版本库根目录



set REPOS_ROOT=C:Repositories



::


设置所有版本库备份根目录



set REPOS_BACKUP_ROOT=C:RepositoriesBackUp


if not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%



::

< p>
获取


LastRevisions


目录

< p>


set REPOS_LAST_REVERSION_DIRECTO RY=%REPOS_BACKUP_ROOT%LastRevisions


if not exist %REPOS_LAST_REVERSION_DIRECTORY% goto Error1



::


设置所有版本库备份目录



set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT %%date:~0,10%.dmp


set BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%


if exist %BACKUP_DIRECTORY% goto Error2


mkdir %BACKUP_DIRECTORY%



::


设置用户权限信息备份目录



set REPOS_USER_INFO_DIRECTORY=%BACKUP_D IRECTORY%UserInfo


if


not


exist


%REPOS_USER_INFO_DIRECTORY%


mkdir %REPOS_USER_INFO_DIRECTORY%



::


设置


L astRevisions


备份目录



set


REPOS_LAST_REVERSION_BAC KUP_DIRECTORY=%BACKUP_DIRECTORY%LastRevisions


if not exist %REPOS_LAST_REVERSION_BACKUP_DIRECTORY% mkdir




%REPOS_LAST_REVERSION_BACKUP_DIRECTORY%



::


备份所有版本库



::i->


版本库、


j->


版 本库最新版本号、


k->


上次完全备份时版本库的版本号



echo


===================%date%


%t ime:~0,8%:












By




.===================




>> %REPOS_BACKUP_ROOT%


echo


备份的版本库版本信息如下


: >> %REPOS_BACKUP_ROOT%



::

< p>
读取版本库根目录下每个文件夹


,


并判断其是否是 一个版本库



for /r %REPOS_ROOT% %%i in (.) do if exist %% (



::


将当前版本库的最新版本信息写入


tmp


文件



%SVN_CMD%svnlook youngest %%~fi > %%~ni_last_


::

< br>取出当前版本库的最新版本信息


,


判断其是否大于


0,


是则进行处理



for /f %%j in (%%~ni_last_) do if %%j gtr 0 (


::


判断以前是否存在该版本库的版本信息< /p>


,


存在说明以前备份过


,


需要基于其进行备



;


否则对 该版本库




进行全新备份



if exist %REPOS_LAST_REVERSION_DIRECTORY%%%~ni_last_ (


::


读取该版本库上次备份时保存的版本信息


,


如果小于当前版本信息则进行处理



for


/f


%%k


in


(%REPOS_LAST_REVERSION_DI RECTORY%%%~ni_last_)


do


if %%k lss %



%j (



echo.


echo


开始备份版本 库


%%~ni


……


< br>::


取得该版本库本次备份的起始版本号



set version=%%k


set /a version=!version!+1


::


增量备份版本库



%SVN_CMD%svnadmin dump --deltas %%~fi --revision !version!:head --incremental >




%BACKUP_DIRECTORY%%%~ni-!version!-%%


echo %%~ni: !version!-%%j >> %REPOS_BACKUP_ROOT%


echo





%%~ni









%BACKUP_DIRECTORY %%%~ni-!version!-%%!


)


) else (



echo.


echo


开始备份版本库


%%~ni


……



::


全量备份版本库



%SVN_CMD%svnadmin


dump


--deltas %%~fi > %BACKUP_DIRECTORY%%%~ni-0-%%


echo %%~ni: 0-%%j >> %REPOS_BACKUP_ROOT%


echo


版本库


%%~ni


已经成功备份到


%BACKUP_DIRECTORY%%%~ni-0 -%%!


)


::


将本次版本库备份 时的最新版本信息写入文件保存



echo %%j> %REPOS_LAST_REVERSION_DIRECTORY%%%~ni_last_


echo %%j> %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%%%~ni_last_


)


::


删除临时文件



del %%~ni_last_


)


echo.


echo


开始备份用户权限信息……



xcopy /y %REPOS_ROOT%authz %REPOS_USER_INFO_DIRECTORY%


xcopy /y %REPOS_ROOT%authz-windows %REPOS_USER_INFO_DIRECTORY%


xcopy /y %REPOS_ROOT%htpasswd %REPOS_USER_INFO_DIRECTORY%


echo.


echo


用户权限信息备份成功


!


echo.


echo


全部版本库备份成功


!


goto end



:Error1


echo.


echo


提示


:


echo

< br>上次备份保存的


%REPOS_LAST_REVERSION_DIRECTO RY%


文件夹不存在


,


请确认


后从上次备份中拷贝




LastReversions



%REPOS_BACKU P_ROOT%


目录


,


重新运行程序< /p>


;


echo


或者

,


不基于上次备份重新执行备份


!


echo


重新备份


?(Y/N)


set /p input=


if %input%==Y (


mkdir %REPOS_LAST_REVERSION_DIRECTORY%


goto Begin


) else (


goto End


)



:Error2


echo.


echo


备份目录已经 存在


,


请确认后删除该目录


,


重新运行程序


!


goto End



:End


echo.


echo


程序执行结束


!


3.



备份结果


-


-


-


-


-


-


-


-



本文更新与2021-02-16 00:45,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/656838.html

SVN备份还原操作手册的相关文章