svn双机热备

1、前言

svn的双机热备。

2、实践部分

2.1、环境

svnSer:

ipaddress=10.168.0.176

hostname=svnSer
svn-slaveSer:

ipaddress=10.168.0.179

hostname=svn-slaveSer

2.2、svnSer安装配置(Master)

In svnSer:

请参阅如下文章安装配置

http://cmdschool.blog.51cto.com/2420395/1715856

并增加如下配置

In svnSer:

1)定义svn备份管理员的用户名和密码

vim修改/var/local/svn/conf/passwd

增加如下定义:

bkuser = bkpwd

2)定义svn备份管理员的组、组成员和目录的组权限:

vim修改/var/local/svn/conf/authz

[groups]
admin_rw = bkuser

[/]
@admin_rw = rw

3)重启服务

/etc/init.d/svnserve restart

2.3、svn-slaveSer的安装配置(Slave)

2.3.1、step1

基本环境配置

In svn-slaveSer:

1)yum安装

yum -y install subversion

2)定义库文件夹

svnadmin create /var/local/svn

3)启动并设置服务开机启动

/etc/init.d/svnserve start
chkconfig svnserve on

4)设置防火墙

vim编辑/etc/sysconfig/iptables

加入如下内容:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

5)重启防火墙

/etc/init.d/iptables restart

2.3.2、step2

In svn-slaveSer:

cd /var/local/svn/hooks/
cp pre-revprop-change.tmpl pre-revprop-change
chmod 744 pre-revprop-change
ll pre-revprop-change

vim编辑/var/local/svn/hooks/pre-revprop-change

修改最后一行

修改前:

exit 1

修改后:

exit 0

注:允许修改注释

2.3.3、step3

获取Master的配置文件

In svn-slaveSer:

1)复制配置文件

scp 10.168.0.176:/var/local/svn/conf/* /var/local/svn/conf/

2)重启服务

/etc/init.d/svnserve restart

2.3.4、step4

初始化同步信息

In svn-slaveSer

svnsync init svn://10.168.0.176/var/local/svn svn://10.168.0.176/var/local/svn

以上步骤会询问你svn的账号和密码,输入前面定义的用户名和密码:

用户名:bkuser

密码:bkpwd

注:svn://10.168.0.176/var/local/svn中var/local/svn代表具体仓路径,并不是svn安装路径,svn://10.168.0.176/var/local/svn亦是如此。前面一个地址是从库,后面一个地址是主库。

2.3.5、step5

同步测试

In svn-slaveSer:

svnsync sync svn://10.168.0.176/var/local/svn

该步骤中如果要同步整个svn,则只需要填入svn://10.168.0.176即可。

以上步骤会询问你svn的账号和密码,输入前面定义的用户名和密码:

用户名:bkuser

密码:bkpwd

成功后的同步结果:

wKioL1ZTKkOCPD6EAABWvW55DsM601.png

2.3.5、step5

设置用户提交自动同步

In svnSer:

cd /var/local/svn/hooks/
cp post-commit.tmpl post-commit
chmod 700 post-commit
ll post-commit

vim编辑/var/local/svn/hooks/post-commit

末尾删除如下内容:

REPOS="$1"
REV="$2"
mailer.py commit "$REPOS" "$REV" /path/to/mailer.conf

增加如下内容:

svnsync sync --non-interactive svn://10.168.0.179/var/local/svn --username bkuser --password bkpwd

以上语句建议先执行一次测试可用再写入post-commit

2.3.6、step6

检查同步情况:

1)桌面新建两个文件夹,pojectA与pojectB

2)分别做如下检出:

 

 

 

注意:以上检出的IP地址分别对应svnSer与svn-slaveSer

3)以上都单击【OK】后检出完毕,记录当前的版本号。

4)更新projetA文件夹的内容并做提交操作并记录提交后的版本号。

5)projetB做更新操作,并查看更新后的版本号是否是刚由projectA提交的版本号。

 

ps:如果有权限问题的同学,记得直接运行如下代码,将svn权限赋给需要存在的组中,避免一些莫名其妙的错误出现。

sudo chown -R aaa:bbb /var/local/svn/

将aaa用户:bbb组 分配/var/local/svn/目录权限 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值