Upload
shadowfalao
View
478
Download
14
Embed Size (px)
DESCRIPTION
Citation preview
ObjectiveObjective
subversionsubversion 备用服务器的重要性;备用服务器的重要性;
创建创建 subversionsubversion 备用服务器的流程;备用服务器的流程;
svnsyncsvnsync 命令的介绍命令的介绍 ;;
使用使用 svnsyncsvnsync 维护和同步维护和同步 subversionsubversion 备用服务备用服务
器;器;
SubversionSubversion 介绍介绍Subversion 是一个开源的 source version control system, 全球最流行的 SVN 服务器系统;目前由 Apache 组织维护和更新;
Subversion 最新版本下载https://subversion.apache.org/
Subversion 安装参考https://svn.apache.org/repos/asf/subversion/trunk/INSTALL
SubversionSubversion 备用服务器备用服务器Subversion 支持双 svn 服务器之间的数据同步,这样不仅可以实现 svn 的主备服务模式,而且还可以实现简单备份 svn 的目的;
这种同步模式可以是两台 SVN 服务器之间或者是同一物理服务器的不同 repository 之间 ;
Subversion 1.4 版本开始提供了 svnsync 命令实现主备 svn 仓库之间的同步;
Subversion standby Subversion standby 创建流程创建流程
创建 standby svn repository ;standby svn repository 端配置 pre-revprop-pre-revprop-
changechange hook script ;初始化 standby svn repository ;source svn repository 同步数据到 standby
svn repository
Create standby svn repositoryCreate standby svn repository
备用 svn repository 的创建非常简单,跟普通svn repository 创建没有区别:
su – svnadmin( 单独创建的 svn 管理账户,这一步不是必须的 )cd /opt/svnsvnadmin casdeve启动 svn 服务 [svn 服务模式参考安装文档 ]:svnserver –d –r /opt/svn
Standby svn repositoryStandby 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 svn repository 在同步模式下被修改。
pre-revprop-change hook scriptpre-revprop-change hook scriptsvnsync 采用” revision” 的方式更新 standby repository 。默认情况下, 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
初始化初始化 standby svn repositorystandby svn repository采用 svnsync 命令初始化 standby svn repository 。Master svn:192.168.0.122/casdeveStandby svn:192.168.0.132/casdeve
cd $subversion_home/binsvnsync init svn://192.168.0.122/casdeve svn://192.168.0.132/casdeve
随后要求输入 snv 同步的账号和密码 , 参考前页的配置 [admin] ,这个同步账号必须在主备库都存在。
如果成功初始化提示下面的信息Copied properties for revision 0.
Svnsync 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
调度调度 svnsyncsvnsync 同步同步
[svnadmin@devedb ~]$ crontab -l*/2 * * * * /bin/bash /home/svnadmin/svnsync.sh > /tmp/svnsync.log 2>&1
每两分钟同步一次。
SvnsyncSvnsync 命令简单介绍命令简单介绍Svnsync 命令非常简单 ,目前只有两种功能,前面已经使用到了。[svnadmin@devedb ~]$ svnsync helpgeneral usage: svnsync SUBCOMMAND DEST_URL [ARGS & OPTIONS ...]Type 'svnsync help <subcommand>' for help on a specific subcommand.Type 'svnsync --version' to see the program version and RA modules.
Available subcommands: initialize (init) synchronize (sync) copy-revprops info help (?, h)