Linux-CentOS-6.8 搭建SVN,搭建主从服务,实现定期自动同步。

一、介绍

  • SVN

svnSubversion的简称,是一个开放源代码的版本控制系统,相较于RCSCVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。

  • 主从服务器

当主服务器宕机之后,可以切换到从服务器上,由从服务器继续提供服务。

最近应公司要求,我负责迁移svn,以此记录。

二、环境

  • 操作系统

             CentOS release 6.8 (Final)

  • 主服务器1台

            IP:192.168.60.69

  • 从服务器2台

             IP:192.168.60.70

             IP:192.168.60.71

  • svn版本

            subversion-1.6.11-15.el6_7.x86_64

三、单机版

在192.168.60.69服务器上进行:

  • 安装svn

[root@6069 ~]# yum install -y  subversion

  • 查看是否安装成功

[root@6069 ~]# svnserve --version

svnserve, version 1.6.11 (r934486)(svn的版本号)

  • 创建svn库的文件位置

[root@6069 ~]# mkdir /home/svnroot

进入该目录

[root@6069 ~]# cd /home/svnroot/

  • 创建一个库

创建一个库,命名为document

[root@6069 svnroot]# svnadmin create /home/svnroot/document

  • 查看该仓库的目录结构

[root@6069 svnroot]# cd document

[root@6069 document]# ls

           

hooks目录:放置hook脚本文件的目录

locks目录:用来放置subversion的db锁文件和db_logs锁文件的目录,用来追踪存取文件库的客户端

format目录:是一个文本文件,里边只放了一个整数,表示当前文件库配置的版本号

conf目录:是这个仓库配置文件(仓库用户访问账户,权限)

 

  • 修改配置,设置用户和权限

[root@6069 document]# cd conf/

[root@6069 conf]# ls

           

authz是管理用户权限的;

passwd是svn用户及密码的;

svnserve.conf是svn的配置文件;

A.修改SVNsvnserver.conf文件

        [root@6069 conf]# vim svnserve.conf

                 

       #匿名访问的权限,可以是read,write,none,默认为read

       anon-access=none

       #使授权用户有写权限

       auth-access=write

       #密码数据库的路径

       password-db=passwd

       #访问控制文件

       authz-db=authz

B.配置访问用户及密码

       [root@6069 conf]# vim passwd

                  

C.配置新用户的授权文件

       [root@6069 conf]# vim authz

                  

 

 

  • 启动svn服务

       [root@6069 conf]# svnserve -d -r /svn

  • 关闭防火墙

       [root@6069 conf]# service iptables stop

  • 设置防火墙永久关闭

       [root@6069 ~]# chkconfig iptables off

  • svn服务开机启动

       [root@6069 ~]# vi /etc/rc.d/rc.local

       添加以下信息:

      

  •  测试连接

         

四、主从版

  • 从节点安装svn(node1)

同单机版主节点安装svn的步骤 (192.168.60.70)

  • 同步

1. 确保两边的svn都是启动状态 并且防火墙是关闭状态

2. 在从节点执行以下操作

进入到hooks目录

[root@6070 svn]# cd hooks/

[root@6070 hooks]# cp pre-revprop-change.tmpl pre-revprop-change

[root@6070 hooks]# vi pre-revprop-change

[root@6070 hooks]# chmod +x pre-revprop-change

3.svn库的父目录中建立钩子

a)[root@6070 /]# cd /

b)[root@6070 /]# svnsync init svn://192.168.60.70 svn://192.168.60.69/document

c)按提示输入root密码;

d)输入两边svn都有的用户名和密码,例如:adminadmin

eStore password unencrypted (yes/no)?

输入yes储存密码,储存后以后再拉就不需要登录了,写自动同步的脚本也方便。

 

出现Copied properties for revision 0.表示钩子建立成功!

4. 开始同步

[root@6070 /]# svnsync sync svn://192.168.60.70/document

               

5. 结果

             

             

 

 

  • 脚本定时同步

手动同步满足不了需求,采用每天凌晨2点定时同步。

A. 编写执行同步的脚本并保存

     [root@bogon /]# vim svnsync.sh

B. 编写计划任务并保存

     crontab –e编辑

     crontab –l 查看

C. 给予脚本权限

     chmod 755 svnsync.sh

D. 结果

     实现定时同步。

  • 搭建node2,并提供脚本

          重复node1整个过程即可。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值