svn异地同步 linux,svn库两地开发之代码数据的同步包括***连接的全套解决方案

应用环境:在北京的svn服务器提供代码归档服务为开发和本地的持续集成编译测试环境,成都开发人员每个人都需要***连接并且不稳定。后来成都部署了本地持续集成环境换取代码,从北京同步完全不现实。触使了成都本地同步北京代码的必要性。

实现方式:

1.首先想到的是使用svn的镜像同步工具来同步即svnsync。但是通过这个方式同步数据,第一同步时不能有代码的提交,同步起来速度比较慢。后续同步(使用hook用北京的提交触同步命令)也很容易出现文件被锁的情况。

2.第二种方式使用linux的rsync的工具同步北京svn服务器的代码根目录到成都,建立起成都的svn服务设置访问目录就实现了完美同步,包括权限的等等,而且所以的数据都完全一直,同步速度也很不错。只要解决了成都svn服务器的***连接就可以稳定的运用。

ps:这种方式同步后的成都svn服务。完全和北京保持一直,本地的变动也会在下次的同被北京数据覆盖,所以运用的为成都的Teamcity的自动化环境获取代码也完美解决的,如果开发人员的获取提交想要在本地提交成都同步到北京还需要做一下两地的同步目录的相互同步。

3.解决两地同步的***网络问题实现***宕机的自动连接,就要写一个自动的连接脚本。首先***帐号密码由专门的人员管理,开发和运维是没有***的拨号密码的,所以就涉及到了脚本的加密。

操作过程:

1.配置成都svn服务器的和北京svn服务器的网络互通,cisco的***,linux服务拨号使用***c这个工具s#!/bin/bash

if [ `id -u` -ne 0 ];then

echo "please use root user"

exit

fi

×××=`ifconfig | grep tun

echo $×××

if [ -z "$×××" ]

then

cd /home/sh

./***c.sh

while [ 1 ]

do

Route=`route | grep 192.168.17.0`

if [ -n "$Route" ]

then

route add -net 192.168.17.0 netmask 255.255.255.0 gw 192.168.21.1

break

fi

done

else

echo $××× >/dev/null

fi

调用的启动脚本***c.sh#!/usr/bin/expect

set timeout 15

spawn ***c --enable-1des

expect {

"Enter IPSec gateway address:" { exp_send "x.xxx.xxx.xx\r";exp_continue }

"Enter IPSec ID for*" { exp_send "***4000\r";exp_continue }

"Enter IPSec secret for*" { exp_send "cisco\r";exp_continue }

"Enter username for*" { exp_send "chengdu38\r";exp_continue}

"Enter password for*" { exp_send "passwd\r"}

}

interact

#expect eof

到现在实现了***的自动连接。

加密shell脚本的方式有提供两种

第一是linux系统自带的gzexe

第二是shc的二进制编译

都可以实现shell中的明文密码ip等信息的不可见。

2.自动同步的操作

有一遍文章很详细的介绍了同步过程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值