Svn在Windows下实现自动全量增量备份和异地备份Word格式文档下载.docx
- 文档编号:3951190
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:13
- 大小:160.33KB
Svn在Windows下实现自动全量增量备份和异地备份Word格式文档下载.docx
《Svn在Windows下实现自动全量增量备份和异地备份Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Svn在Windows下实现自动全量增量备份和异地备份Word格式文档下载.docx(13页珍藏版)》请在冰点文库上搜索。
setlocalenabledelayedexpansion
echo正在准备备份所有版本库……
echo.
设置SVN命令目录
setSVN_CMD="
E:
\VisualSVNServer\bin"
设置所有版本库根目录
setREPOS_ROOT=D:
\Repositories
设置所有版本库备份根目录
setREPOS_BACKUP_ROOT=F:
\[SvnBackup]\全备份
ifnotexist%REPOS_BACKUP_ROOT%mkdir%REPOS_BACKUP_ROOT%
设置所有版本库备份目录
setBACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%\%date:
~0,10%.dmp
setBACKUP_DIRECTORY=%BACKUP_DIRECTORY:
/=-%
remifexist%BACKUP_DIRECTORY%gotoError2
remmkdir%BACKUP_DIRECTORY%
ifnotexist%BACKUP_DIRECTORY%mkdir%BACKUP_DIRECTORY%
设置用户权限信息备份目录
setREPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfo
ifnotexist%REPOS_USER_INFO_DIRECTORY%mkdir%REPOS_USER_INFO_DIRECTORY%
备份所有版本库
i->
版本库、j->
版本库最新版本号、k->
上次完全备份时版本库的版本号
echo===================%date%%time:
~0,8%:
执行全部全量备份版本库.===================>
>
%REPOS_BACKUP_ROOT%\BackUp.log
echo备份的版本库版本信息如下:
>
读取版本库根目录下每个文件夹,并判断其是否是一个版本库
for/r%REPOS_ROOT%%%iin(.)doifexist%%i\conf\svnserve.conf(
:
将当前版本库的最新版本信息写入tmp文件
%SVN_CMD%\svnlookyoungest%%~fi>
%%~ni_last_revision.tmp
取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理
for/f%%jin(%%~ni_last_revision.tmp)doif%%jgtr0(
echo.
echo开始备份版本库%%~ni……
:
全量备份版本库
%SVN_CMD%\svnadmindump--deltas%%~fi>
%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp
echo%time:
~0,8%%%~ni:
0-%%j>
echo版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!
)
删除临时文件
del%%~ni_last_revision.tmp
)
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%time:
~0,8%用户权限信息备份成功!
echo全部版本库备份成功!
~0,8%全部版本库备份成功!
AllBackupByFtp
gotoend
Error2
echo备份目录已经存在,请确认后删除该目录,重新运行程序!
gotoEnd
End
echo程序执行结束!
2)SVN的全备份进行FTP上传,AllBackupByFtp.bat
REM======设置区Start================================
setftpUser=svn
setftpPass=svnbackup
setftpIP=192.168.1.22
setftpPort=2016
REM指定从FTP下载下来的文件存放到本机哪个目录
setftpFolder=/全备份
REM本地需要备份的根目录
setSvnBackupRoot=F:
REM本地需要打压缩包的备份目录(今天备份文件夹2016-01-01.dmp)
setSvnBackupFolder=%SvnBackupRoot%\%date:
REM需要压缩成的文件路径及文件名(今天备份上传文件2016-01-01.dmp.rar)
setrarToFilePath=%SvnBackupFolder%.rar
REMRAR执行文件的路径
setrarExePath="
C:
\ProgramFiles\WinRAR\"
setbakupLogFilePath=%SvnBackupRoot%\BackUp.log
REMFTP命令执行文件缓存
setftpFile=%cd%\TempFTP.txt
"
%ftpFile%"
(
echo,open%ftpIP%%ftpPort%
echo,%ftpUser%
echo,%ftpPass%
echocd"
%ftpFolder%"
echopromptoff
echobin
echoput%rarToFilePath%
echoput%bakupLogFilePath%
echobye
setPath=%Path%;
%rarExePath%
setlogFilePath=%SvnBackupRoot%\ftpUp.log
REM======设置区End================================
echo===================%date%执行异地版本库全量备份开始=================>
%logFilePath%
ifnotexist%SvnBackupFolder%gotoError1
~0,8%备份压缩开始...>
WinRAR.exea-ep1-k-r-s-ibck%rarToFilePath%%SvnBackupFolder%
~0,8%备份压缩成功,压缩的文件路径为:
%rarToFilePath%>
~0,8%备份压缩继续上传FTP开始...>
ftp-v-i-s:
~0,8%上传FTP成功,上传FTP目录为:
%ftpFolder%>
del/q/s/f%rarToFilePath%
echo.>
Error1
~0,8%提示:
需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成!
~0,8%备份失败!
echo提示:
echo需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成!
1.2增量备份BAT
1)SVN数据库的增量备份,IncreBackUp.bat
\[SvnBackup]\增量备份
获取LastRevisions目录
setREPOS_LAST_REVERSION_DIRECTORY=%REPOS_BACKUP_ROOT%\LastRevisions
remifnotexist%REPOS_LAST_REVERSION_DIRECTORY%gotoError1
ifnotexist%REPOS_LAST_REVERSION_DIRECTORY%mkdir%REPOS_LAST_REVERSION_DIRECTORY%
设置LastRevisions备份目录
setREPOS_LAST_REVERSION_BACKUP_DIRECTORY=%BACKUP_DIRECTORY%\LastRevisions
ifnotexist%REPOS_LAST_REVERSION_BACKUP_DIRECTORY%mkdir%REPOS_LAST_REVERSION_BACKUP_DIRECTORY%
执行全部版本库备份.===================>
%SVN_CMD%\svnlookyoungest%%~fi>
for/f%%jin(%%~ni_last_revision.tmp)doif%%jgtr0(
判断以前是否存在该版本库的版本信息,存在说明以前备份过,需要基于其进行备份;
否则对该版本库进行全新备份
ifexist%REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt(
读取该版本库上次备份时保存的版本信息,如果小于当前版本信息则进行处理
for/f%%kin(%REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt)doif%%klss%%j(
echo开始备份版本库%%~ni……
取得该版本库本次备份的起始版本号
setversion=%%k
set/aversion=!
version!
+1
增量备份版本库
%SVN_CMD%\svnadmindump--deltas%%~fi--revision!
head--incremental>
%BACKUP_DIRECTORY%\%%~ni-!
-%%j.dmp
echo%%~ni:
!
-%%j>
echo版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-!
-%%j.dmp!
)else(
%SVN_CMD%\svnadmindump--deltas%%~fi>
%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp
echo版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp!
将本次版本库备份时的最新版本信息写入文件保存
echo%%j>
%REPOS_LAST_REVERSION_DIRECTORY%\%%~ni_last_revision.txt
%REPOS_LAST_REVERSION_BACKUP_DIRECTORY%\%%~ni_last_revision.txt
del%%~ni_last_revision.tmp
IncreBackupByFtp
echo上次备份保存的%REPOS_LAST_REVERSION_DIRECTORY%文件夹不存在,请确认后从上次备份中拷贝LastReversions到%REPOS_BACKUP_ROOT%目录,重新运行程序;
echo或者,不基于上次备份重新执行备份!
echo重新备份?
(Y/N)
set/pinput=
if%input%==Y(
mkdir%REPOS_LAST_REVERSION_DIRECTORY%
gotoBegin
2)SVN数据的增量备份的FTP上传,IncreBackupByFtp.bat
setftpFolder=/增量备份
echo===================%date%执行异地版本库增量备份开始.===================>
3SVN还原BAT设计
SVN的还原LoadBackUp.bat
echo正在准备还原所有版本库……
ifnotexist%REPOS_BACKUP_ROOT%gotoError
还原所有版本库
执行版本库执行还原操作===============
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Svn Windows 实现 自动 增量 备份 异地
![提示](https://static.bingdoc.com/images/bang_tan.gif)