




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SVN备份还原操作手册一、 命令备份1. svnadmin dump全量备份进入SVN服务端安装目录下运行svnadmin dump命令(C:/Repositories/QA为SVN库中项目目录,full.svn.bak为备份文件名)2. svnadmin dump增量备份(以增量把版本库8转存到svn.bak.1,-r -revision :指定版本;-incremental :以增量方式进行转存)3. svnadmin dump还原(先创建一个新的版本库,再还原完全备份,有增量备份的再还原增量备份)(进入SVN服务端安装目录下调用命令创建test测试库)4. 运行svnadmin load还原命令(增量还原同全量还原)二、 脚本备份(针对项目库备份)1. svnadmin dump全量备份脚本(在SVN库中添加全量备份脚本backup.bat,需要安装对应的压缩工具)2. 脚本内容rem Subversion的安装目录set SVN_HOME=C:ProgramFilesVisualSVNServerrem 所有版本库的父目录set SVN_ROOT=C:Repositoriesrem 备份的目录set BACKUP_SVN_ROOT=C:bakrem 创建存放版本库的临时目录set BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%date:0,4%date:5,2%date:8,2%if exist %BACKUP_DIRECTORY% goto checkBackecho %date:0,4%date:5,2%date:8,2%:建立备份目录%BACKUP_DIRECTORY%SVN_ROOT%/backup.logrem SVN 版本库自动备份时需要rem创建备份目录md %BACKUP_DIRECTORY%cd C:Program FilesVisualSVN Serverbinsvnadmin.exe dump C:RepositoriesQA %BACKUP_DIRECTORY%FINANCE%date:0,10%rem 验证目录是否为版本库,如果是则取出名称备份rem for /r%SVN_ROOT%I in(.)doifexist%Iconfsvnserve.confcall%SVN_ROOT%simpleBackup.bat%fI%nIecho 开始压缩版本库,请不要中止. rem %SVN_ROOT%7z.exea-tzip%BACKUP_SVN_ROOT%date:0,4%date:5,2%date:8,2%.zip%BACKUP_DIRECTORY%*-rnulecho 版本库压缩完成!rem 清除临时创建备份目录rem rd/s/q%BACKUP_DIRECTORY%goto end:checkBackecho 备份目录%BACKUP_DIRECTORY%已经存在,请清空。goto end:endecho on3. 运行脚本backup.bat,会生成备份文件4. 备份还原将备份文件考到SVN服务器安装目录下,运行SVN还原命令三、 脚本备份(针对SVN仓库备份)1. svnadmin dump全量备份脚本(在SVN库中添加全量备份脚本DumpAll.bat)2. 脚本内容:Beginecho offsetlocal enabledelayedexpansionecho 正在准备备份所有版本库echo.:设置SVN命令目录set SVN_CMD=C:Program FilesVisualSVN Serverbin:设置所有版本库根目录set REPOS_ROOT=C:Repositories:设置所有版本库备份根目录set REPOS_BACKUP_ROOT=C:RepositoriesBackUpif not exist %REPOS_BACKUP_ROOT% mkdir %REPOS_BACKUP_ROOT%:获取LastRevisions目录set REPOS_LAST_REVERSION_DIRECTORY=%REPOS_BACKUP_ROOT%LastRevisionsif not exist %REPOS_LAST_REVERSION_DIRECTORY% goto Error1:设置所有版本库备份目录set BACKUP_DIRECTORY=%REPOS_BACKUP_ROOT%date:0,10%.dmpset BACKUP_DIRECTORY=%BACKUP_DIRECTORY:/=-%if exist %BACKUP_DIRECTORY% goto Error2mkdir %BACKUP_DIRECTORY%:设置用户权限信息备份目录set REPOS_USER_INFO_DIRECTORY=%BACKUP_DIRECTORY%UserInfoif not exist %REPOS_USER_INFO_DIRECTORY% mkdir %REPOS_USER_INFO_DIRECTORY%:设置LastRevisions备份目录set REPOS_LAST_REVERSION_BACKUP_DIRECTORY=%BACKUP_DIRECTORY%LastRevisionsif not exist %REPOS_LAST_REVERSION_BACKUP_DIRECTORY% mkdir %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%:备份所有版本库:i-版本库、j-版本库最新版本号、k-上次完全备份时版本库的版本号echo =%date% %time:0,8%:执行全部版本库备份 By 陈静.= %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_last_revision.tmp) do if %j gtr 0 (:判断以前是否存在该版本库的版本信息,存在说明以前备份过,需要基于其进行备份;否则对该版本库进行全新备份if exist %REPOS_LAST_REVERSION_DIRECTORY%ni_last_revision.txt (:读取该版本库上次备份时保存的版本信息,如果小于当前版本信息则进行处理for /f %k in (%REPOS_LAST_REVERSION_DIRECTORY%ni_last_revision.txt) do if %k lss %j (echo.echo 开始备份版本库%ni:取得该版本库本次备份的起始版本号set version=%kset /a version=!version!+1:增量备份版本库%SVN_CMD%svnadmin dump -deltas %fi -revision !version!:head -incremental %BACKUP_DIRECTORY%ni-!version!-%j.dmpecho %ni: !version!-%j %REPOS_BACKUP_ROOT%BackUp.logecho 版本库%ni已经成功备份到%BACKUP_DIRECTORY%ni-!version!-%j.dmp!) else (echo.echo 开始备份版本库%ni:全量备份版本库%SVN_CMD%svnadmin dump -deltas %fi %BACKUP_DIRECTORY%ni-0-%j.dmpecho %ni: 0-%j %REPOS_BACKUP_ROOT%BackUp.logecho 版本库%ni已经成功备份到%BACKUP_DIRECTORY%ni-0-%j.dmp!):将本次版本库备份时的最新版本信息写入文件保存echo %j %REPOS_LAST_REVERSION_DIRECTORY%ni_last_revision.txtecho %j %REPOS_LAST_REVERSION_BACKUP_DIRECTORY%ni_last_revision.txt):删除临时文件del %ni_last_revision.tmp)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:Error1echo.echo 提示:echo 上次备份保存的%REPOS_LAST_REVERSION_DIRECTORY%文件夹不存在,请确认后从上次备份中拷贝LastReversions到%REPOS_BACKUP_ROOT%目录,重新运行程序;echo 或者,不基于上次备份重新执行备份!echo 重新备份?(Y/N)set /p input=if %input%=Y (mkdir %REPOS_LAST_REVERSION_DIRECTORY%goto Begin) else (goto End):Error2echo.echo 备份目录已经存在,请确认后删除该目录,重新运行程序!goto End:Endecho.echo 程序执行结束!3. 备份结果4. 还原脚本(在SVN库中添加全量备份脚本LoadBackUp.bat):LoadBackUp.batecho offecho 正在准备还原所有版本库echo.:设置SVN命令目录set SVN_CMD=C:Program FilesVisualSVN Serverbin:设置所有版本库根目录set REPOS_ROOT=C:Repositories:设置所有版本库备份根目录set REPOS_BACKUP_ROOT=C:RepositoriesBackUpif not exist %REPOS_BACKUP_ROOT% goto Error:还原所有版本库echo =%date% %time:0,8%:执行版本库执行还原操作 By 陈静.= %REPOS_BACKUP_ROOT%SvnLoad.logecho 还原的版本库版本信息如下: %REPOS_BACKUP_ROOT%SvnLoad.log:将所有保存版本库备份的文件夹名写入tmpdir /b %REPOS_BACKUP_ROOT%*.dmp folderName.tmp:依次操作tmp文件中包含的文件夹for /f %h in (folderName.tmp) do (:将所有版本库文件名写入tmpdir /b /a-d %REPOS_BACKUP_ROOT%h*.dmp fileName.tmp:依次操作tmp文件中包含的备份文件for /f %i in (fileName.tmp) do (:处理备份文件名,以取得版本库名和相应的版本号 for /f tokens=1,2* delims=- %j in (%ni) do (echo.echo 开始还原版本库%REPOS_BACKUP_ROOT%h%j-%k-%l:版本库根目录不存在和版本库名相同名字的文件夹则创建一个if not exist %REPOS_ROOT%j (mkdir %REPOS_ROOT%j ):版本库根目录中该文件夹不是版本库,则创建一个if not exist %REPOS_ROOT%jconfsvnserve.conf (%SVN_CMD%svnadmin create %REPOS_ROOT%j):还原备份%SVN_CMD%svnadmin load %REPOS_RO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届随州市重点中学化学高二第一学期期中教学质量检测模拟试题含解析
- 2025年新高二化学暑假衔接讲练(人教版)第01讲反应热
- 机械基础知识培训内容课件
- 武昌社区面试题目及答案
- 司法知识业务培训总结课件
- 新解读《GB-T 36151-2018航空用铝合金通孔镶嵌件》
- 绥化医疗面试题目及答案
- 硕士文员面试题目及答案
- 难度大的初三数学试卷
- 琪琪涵涵数学试卷
- 养老机构经营与管理课件
- 良性位置性眩晕的护理查房
- 余华《活着》人物介绍
- 2023-2025北京初三二模物理汇编:力学计算题
- 康复家长培训
- 教育数字化背景下虚拟仿真实训教学资源的建设与开放共享模式探索
- 地铁工程质量培训
- 断舍离课件教学课件
- 云南博物馆招聘笔试真题2024
- QGDW11937-2018快速动态响应同步调相机组运维规范
- 婴幼儿托育服务与管理专业职业生涯规划
评论
0/150
提交评论