Svn在Windows下实现自动全量增量备份和异地备份(共13页).docx
《Svn在Windows下实现自动全量增量备份和异地备份(共13页).docx》由会员分享,可在线阅读,更多相关《Svn在Windows下实现自动全量增量备份和异地备份(共13页).docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上SVN在Windows下实现自动全量增量备份和异地备份1 SVN备份介绍1.1 SVN备份内容SVN在Windows下的自动备份实现,包括:1) SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行);2) SVN增量备份(每日备份1次,由windows计划来调度执行);1.2 SVN备份流程上述2类备份分别进行的流程如下:1) 通过windows定时任务功能,调度进行备份、压缩、FTP上传功能的bat文件;2) 将自动备份成按每日日期.dmp备份到SVN本机的其他磁盘空间中,分全备份和增量备份;3) 启动ftp上传命令,将备份的rar包立即上传在
2、异地服务器上。异地服务器需提前架好ftp服务器并建立好相关上传目录,建议使用用FileZilla_Server、serverU或者简单ftp软件进行搭建。4) 整个上传过程,详细记录备份、压缩、FTP上传各步骤详细日志,随时可以查阅每次备份记录的详细情况。1.3 SVN还原功能可以进行还原所有版本库2 SVN备份BAT设计1.1 全备份BAT1)SVN的全备份,AllBackUp.bat:Beginecho offsetlocal enabledelayedexpansionecho 正在准备备份所有版本库echo.:设置SVN命令目录set SVN_CMD=E:VisualSVN Serve
3、rbin:设置所有版本库根目录set REPOS_ROOT=D:Repositories:设置所有版本库备份根目录set REPOS_BACKUP_ROOT=F:SvnBackup全备份if not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%:设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%date:0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%rem if exist %BACKUP_DIRECTORY% goto Err
4、or2rem mkdir %BACKUP_DIRECTORY%if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY%:设置用户权限信息备份目录set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%UserInfoif not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY%:备份所有版本库:i-版本库、j-版本库最新版本号、k-上次完全备份时版本库的版本号echo =%date% %time:0,8%:执行全部
5、全量备份版本库.= %REPOS_BACKUP_ROOT%BackUp.logecho 备份的版本库版本信息如下: %REPOS_BACKUP_ROOT%BackUp.log:读取版本库根目录下每个文件夹,并判断其是否是一个版本库for /r %REPOS_ROOT% %i in (.) do if exist %iconfsvnserve.conf (:将当前版本库的最新版本信息写入tmp文件%SVN_CMD%svnlook youngest %fi %ni_last_revision.tmp:取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理for /f %j in (%ni_l
6、ast_revision.tmp) do if %j gtr 0 (echo.echo 开始备份版本库%ni:全量备份版本库%SVN_CMD%svnadmin dump -deltas %fi %BACKUP_DIRECTORY%ni-0-%j.dmpecho %time:0,8% %ni: 0-%j %REPOS_BACKUP_ROOT%BackUp.logecho 版本库%ni已经成功备份到%BACKUP_DIRECTORY%ni-0-%j.dmp!):删除临时文件del %ni_last_revision.tmp)echo.echo 开始备份用户权限信息xcopy /y %REPOS_R
7、OOT%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 - %REPOS_BACKUP_ROOT%BackUp.logecho.echo 用户权限信息备份成功!echo %time:0,8% 用户权限信息备份成功! %REPOS_BACKUP_ROOT%BackUp.logecho.echo 全部版本库备份成功!echo %time
8、:0,8% 全部版本库备份成功! %REPOS_BACKUP_ROOT%BackUp.logAllBackupByFtpgoto end:Error2echo.echo 备份目录已经存在,请确认后删除该目录,重新运行程序!goto End:Endecho.echo 程序执行结束!2)SVN的全备份进行FTP上传,AllBackupByFtp.batecho offREM =设置区Start=set ftpUser=svnset ftpPass=svnbackupset ftpIP=192.168.1.22set ftpPort=2016REM 指定从FTP下载下来的文件存放到本机哪个目录set
9、 ftpFolder=/全备份REM 本地需要备份的根目录set SvnBackupRoot=F:SvnBackup全备份REM 本地需要打压缩包的备份目录(今天备份文件夹2016-01-01.dmp)set SvnBackupFolder=%SvnBackupRoot%date:0,10%.dmpREM 需要压缩成的文件路径及文件名(今天备份上传文件2016-01-01.dmp.rar)set rarToFilePath=%SvnBackupFolder%.rarREM RAR执行文件的路径set rarExePath=C:Program FilesWinRARREM RAR执行文件的路径s
10、et bakupLogFilePath=%SvnBackupRoot%BackUp.logREM FTP命令执行文件缓存set ftpFile=%cd%TempFTP.txt%ftpFile% ( echo,open %ftpIP% %ftpPort% echo,%ftpUser% echo,%ftpPass% echo cd %ftpFolder% echo prompt off echo bin echo put %rarToFilePath% echo put %bakupLogFilePath% echo bye)set Path=%Path%;%rarExePath%set logF
11、ilePath=%SvnBackupRoot%ftpUp.logREM =设置区End =echo =%date% 执行异地版本库全量备份开始= %logFilePath%if not exist %SvnBackupFolder% goto Error1echo %time:0,8% 备份压缩开始. %logFilePath%WinRAR.exe a -ep1 -k -r -s -ibck %rarToFilePath% %SvnBackupFolder%echo %time:0,8% 备份压缩成功,压缩的文件路径为:%rarToFilePath% %logFilePath%echo %ti
12、me:0,8% 备份压缩继续上传FTP开始. %logFilePath%ftp -v -i -s:%ftpFile%echo %time:0,8% 上传FTP成功,上传FTP目录为:%ftpFolder% %logFilePath%del /q /s /f %rarToFilePath%echo. %logFilePath%goto end:Error1echo.echo %time:0,8% 提示: 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成! %logFilePath%echo %time:0,8% 备份失败! %logFilePat
13、h%echo. %logFilePath%echo 提示:echo 需要进行压缩打包的备份文件夹%SvnBackupFolder%不存在,请确认SVN是否本地备份完成!:Endecho.echo 程序执行结束!1.2 增量备份BAT1)SVN数据库的增量备份,IncreBackUp.bat:Beginecho offsetlocal enabledelayedexpansionecho 正在准备备份所有版本库echo.:设置SVN命令目录set SVN_CMD=E:VisualSVN Serverbin:设置所有版本库根目录set REPOS_ROOT=D:Repositories:设置所有版
14、本库备份根目录set REPOS_BACKUP_ROOT=F:SvnBackup增量备份if not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%:获取LastRevisions目录set REPOS_LAST_REVERSION_DIRECTORY=%REPOS_BACKUP_ROOT%LastRevisionsrem if not exist %REPOS_LAST_REVERSION_DIRECTORY% goto Error1 if not exist %REPOS_LAST_REVERSION_DIRECTORY% mkdir
15、 %REPOS_LAST_REVERSION_DIRECTORY%:设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%date:0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%rem if exist %BACKUP_DIRECTORY% goto Error2rem mkdir %BACKUP_DIRECTORY%if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY%:设置用户权限信息备份目录set REPOS_USER_INF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Svn Windows 实现 自动 增量 备份 异地 13
限制150内