Your SlideShare is downloading. ×
Subversion备份服务器的创建
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Subversion备份服务器的创建

453
views

Published on

Published in: Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
453
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Mirror a Subversion repository By Robin Ma shadowfalao@gmail.com http://www.validba.net
  • 2. Objectivesubversion 备用服务器的重要性;创建 subversion 备用服务器的流程;svnsync 命令的介绍 ;使用 svnsync 维护和同步 subversion 备用服务器;
  • 3. Subversion 介绍Subversion 是一个开源的 source versioncontrol system, 全球最流行的 SVN 服务器系统;目前由 Apache 组织维护和更新;Subversion 最新版本下载https://subversion.apache.org/Subversion 安装参考https://svn.apache.org/repos/asf/subversion/trunk/INSTALL
  • 4. Subversion 备用服务器Subversion 支持双 svn 服务器之间的数据同步,这样不仅可以实现 svn 的主备服务模式,而且还可以实现简单备份 svn 的目的;这种同步模式可以是两台 SVN 服务器之间或者是同一物理服务器的不同 repository 之间 ;Subversion 1.4 版本开始提供了 svnsync 命令实现主备 svn 仓库之间的同步;
  • 5. Subversion standby 创建流程 创建 standby svn repository ; standby svn repository 端配置 pre-revprop- change hook script ; 初始化 standby svn repository ; source svn repository 同步数据到 standby svn repository
  • 6. Create standby svn repository备用 svn repository 的创建非常简单,跟普通svn repository 创建没有区别:su – svnadmin( 单独创建的 svn 管理账户,这一步不是必须的 )cd /opt/svnsvnadmin casdeve启动 svn 服务 [svn 服务模式参考安装文档 ]:svnserver –d –r /opt/svn
  • 7. Standby svn repository 简单配置默认情况下 ,standby svn 除了同步账号可以写入之外,其他帐号应该只配置只读权限;[svnadmin@devedb conf]$ more authz### This file is an example authorization file for svnserv……………….[casdeve:/]@dev = radmin = rw* =r..................authz 文件中,只有 admin[ 同步账号 ] 用户只有读写权限,其他只有只读权限,防止 standby svnrepository 在同步模式下被修改。
  • 8. pre-revprop-change hook scriptsvnsync 采用” revision” 的方式更新 standbyrepository 。默认情况下, subversion 不允许” revision” 模式创建或者修改版本仓库。为了实现 revision 的更新模式,必须在 standby 服务器端创建 pre-revprop-change hook 脚本,这个脚本不做任何的操作,只要反回一个有效的状态[casdeve] 为 standby svn repository 主目录。cd /opt/svn/casdeve/hooksecho ‘#!/bin/bash’ > pre-revprop-changeecho ‘exit 0 ‘ >> pre-revprop-changechmod 755 pre-revprop-change
  • 9. 初始化 standby svn repository采用 svnsync 命令初始化 standby svnrepository 。Master svn:192.168.0.122/casdeveStandby svn:192.168.0.132/casdevecd $subversion_home/binsvnsync init svn://192.168.0.122/casdeve svn://192.168.0.132/casdeve随后要求输入 snv 同步的账号和密码 , 参考前页的配置 [admin] ,这个同步账号必须在主备库都存在。如果成功初始化提示下面的信息Copied properties for revision 0.
  • 10. Svnsync 主备同步设置 svnsync 命令同步主备 svn repository 。svnsync sync svn://192.168.0.132/casdeve –username=admin –password=admin默认情况下要 svnsync 需要用户确认同步,添加 --non-interactive 参数可以实现非交互式 静默同步。svnsync sync --non-interactive svn://192.168.0.132/casdeve–username=admin –password=admin可以将这个命令封装在脚本中,利用调度功能实现自动同步。下面为同步多个repository 的脚本封装。[svnadmin@devedb ~]$ more svnsync.sh#/bin/bashSVN_HOME=/usr/local/subversion$SVN_HOME/bin/svnsync sync --non-interactive svn://192.168.0.132/****data--username=admin --password=****0000$SVN_HOME/bin/svnsync sync --non-interactive svn://192.168.0.132/casdeve--username=admin --password=****0000
  • 11. 调度 svnsync 同步[svnadmin@devedb ~]$ crontab -l*/2 * * * * /bin/bash /home/svnadmin/svnsync.sh > /tmp/svnsync.log 2>&1每两分钟同步一次。
  • 12. Svnsync 命令简单介绍Svnsync 命令非常简单 ,目前只有两种功能,前面已经使用到了。[svnadmin@devedb ~]$ svnsync helpgeneral usage: svnsync SUBCOMMAND DEST_URL [ARGS &OPTIONS ...]Type svnsync help <subcommand> for help on a specificsubcommand.Type svnsync --version to see the program version and RAmodules.Available subcommands: initialize (init) synchronize (sync) copy-revprops info
  • 13. Svnsync 命令简单介绍进一步的命令详细介绍可运行[svnadmin@devedb ~]$ svnsync help info