linux svn server搭建、多项目管理及主备方案

来源:互联网 发布:北京现代网络商学院 编辑:程序博客网 时间:2024/06/06 15:48
linux svn server搭建、多项目管理及主备方案http://h2ofly.blog.51cto.com/6834926/1539141/没有实践备库搭建【第一安装】yum install subversion【第二配置】2.1、创建svn目录mkdir -p  /data/svndata/2.2、创建多项目:将iso、android、web分开管理svnadmin create /data/svndata/iossvnadmin create /data/svndata/androidsvnadmin create /data/svndata/web注意:svnadmin create用于创建独立的项目,创建好之后如下图:2.3、统一管理配置(用于管理多个项目)2.3.1、创建统一管理相关配置文件mkdir -p /data/svndata/conf/  #该目录用于管理所有项目的帐号密码、权限控制等cat /data/svndata/conf/svnserve.conf[general]anon-access = readauth-access = writepassword-db = passwdauthz-db = authzrealm = /data/svndata[sasl]# use-sasl = true# min-encryption = 0# max-encryption = 256cat /data/svndata/conf/passwd[users]xionglei = xiongleiwendy = wendyanyin = anyincat /data/svndata/conf/authz[aliases][groups][/]anyin=rwwendy=rww=r2.3.2各项目配置文件修改每个项目默认使用的配置文件是该项目下的配置文件,所以必须修改掉,否则不受总控配置文件的管理的# grep -v '#' /data/svndata/android/conf/svnserve.conf  #其他项目类似,这里就不一一列举了[general] anon-access = none auth-access = writepassword-db = ../../conf/passwd #说明使用总控的密码文件 authz-db = ../../conf/authz #说明使用总控的权限文件 realm = /data/svndata/android【第三启动】svnserve -d -r /data/svndata/ps -aux|grep svnservekill -9 进程【第四数据初始化】已有代码需要导入svn版本库如下svn import /tmp/data/ios/ file:///data/svndata/codes/ios/trunk -m 'init import’【第五备库搭建】注:这里使用了svnsync定时同步数据,也可以做实时同步,请自己研究(大致提示为配置钩子post-commit来实现)5.1备库项目创建(和主库创建项目无异)以下操作在备库上操作mkdir -p  /data/svndata/svnadmin create /data/svndata/iossvnadmin create /data/svndata/androidsvnadmin create /data/svndata/web配置文件也和主库一样:包括总控的配置文件及各项目的配置文件,这里就不详细列了。5.2准备备库的钩子(以android项目为例,其他项目一样)以下操作在备库上操作cat /data/svndata/android/hooks/pre-revprop-change#!/bin/shexit 0chmod 755 /data/svndata/android/hooks/pre-revprop-change5.3svnsync初始化及同步数据这里以android 项目为例,其他项目类似注:172.16.0.185 是备库,172.16.0.120是主库;主库和备库的用户名和密码一致,并且h2o需要有相关权限,具体看/data/svndata/conf/authzsvnsync init svn://139.196.237.225/android svn://172.16.0.120/android --username h2o--password Yj3NlMD --no-auth-cache #svnsync 建立主备库关系 svnsync sync svn://172.16.0.185/android   --username h2o --password Yj3NlMD--no-auth-cache #svnsync 将数据从主库同步过来如果看到以下内容就说明成功了。如果发现只有版本号,没有Transmitting file data,请仔细检查主库备库配置文件,是否有错误和遗漏Transmitting file data .Committed revision 1.Copied properties for revision 1.Transmitting file data .Committed revision 2.Copied properties for revision 2.Committed revision 3.Copied properties for revision 3.Transmitting file data .Committed revision 4.Copied properties for revision 4.【第六定时更新脚本】在备库上写定时同步的脚本,关键如下#!/bin/bashnow_time=$(date "+%F_%T”)projects=(android  ios web)for project in ${projects[@]};do      svnsync sync svn://172.16.0.185/$project --username h2o--password Yj3NlMD --no-auth-cache >> /home/logs/svnbak.log.$now_time 2>&1done
原创粉丝点击