SVN在Windows下实现自动全量增量备份和异地备份
1SVN备份介绍
1.1SVN备份内容
SVN在Windows下的自动备份实现,包括:
1)SVN目录的全备份(1周或1个月备份1次,由windows计划来调度执行);
2)SVN增量备份(每日备份1次,由windows计划来调度执行);
1.2SVN备份流程
上述2类备份分别进行的流程如下:
1)通过windows定时任务功能,调度进行备份、压缩、FTP上传功能的bat文件;
2)将自动备份成按每日日期.dmp备份到SVN本机的其他磁盘空间中,分全备份和增量备份;
3)启动ftp上传命令,将备份的rar包立即上传在异地服务器上。异地服务器需提前架好ftp服务器并建立好相关上传目录,建议使用用FileZilla_Server、serverU或者简单ftp软件进行搭建。
4)整个上传过程,详细记录备份、压缩、FTP上传各步骤详细日志,随时可以查阅每次备份记录的详细情况。
1.3SVN还原功能
可以进行还原所有版本库
2SVN备份BAT设计
1.4全备份BAT
1)SVN的全备份,AllBackUp.bat
:Begin @echo off setlocal enabledelayedexpansion echo 正在准备备份所有版本库…… echo. ::设置SVN命令目录 set SVN_CMD="E:\VisualSVN Server\bin" ::设置所有版本库根目录 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%.dmp set BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-% truncated filerem if exist %BACKUP_DIRECTORY% goto Error2 rem mkdir %BACKUP_DIRECTORY% if not exist %BACKUP_DIRECTORY% mkdir %BACKUP_DIRECTORY% ::设置用户权限信息备份目录 set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%\UserInfo if not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY% ::备份所有版本库 ::i->版本库、j->版本库最新版本号、k->上次完全备份时版本库的版本号 echo ===================%date% %time:~0,8%:执行全部全量备份版本库.=================== >> %REPOS_BACKUP_ROOT%\BackUp.log echo 备份的版本库版本信息如下: >> %REPOS_BACKUP_ROOT%\BackUp.log ::读取版本库根目录下每个文件夹,并判断其是否是一个版本库 for /r %REPOS_ROOT% %%i in (.) do if exist %%i\f ( ::将当前版本库的最新版本信息写入tmp文件 %SVN_CMD%\svnlook youngest %%~fi > %%~ni_p ::取出当前版本库的最新版本信息,判断其是否大于0,是则进行处理 for /f %%j in (%%~ni_p) do if %%j gtr 0 ( echo. echo 开始备份版本库%%~ni…… ::全量备份版本库 %SVN_CMD%\svnadmin dump --deltas %%~fi > %BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp echo %time:~0,8% %%~ni: 0-%%j >> %REPOS_BACKUP_ROOT%\BackUp.log echo 版本库%%~ni已经成功备份到%BACKUP_DIRECTORY%\%%~ni-0-%%j.dmp! ) ::删除临时文件 del %%~ni_p ) 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 ---------------------------------->> %REPOS_BACKUP_ROOT%\BackUp.log echo. echo 用户权限信息备份成功! echo %time:~0,8% 用户权限信息备份成功! >> %REPOS_BACKUP_ROOT%\BackUp.log echo. echo 全部版本库备份成功! echo %time:~0,8% 全部版本库备份成功! >> %REPOS_BACKUP_ROOT%\BackUp.log AllBackupByFtp goto end :Error2 echo. echo 备份目录已经存在,请确认后删除该目录,重新运行程序! goto End :End echo. echo 程序执行结束! |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论