为了安全起见,SVN服务器除了做定时全量备份和增量备份以外,如条件允许,可做实时备份。

这需要2台机器,一台是master server,另一台做mirror server。master做主服务,mirror不对外服务或设置只读(除了同步账号可写外)

另外如果master负载比较高,可以把一些只读的应用设置为从mirror读取,例如Jenkins编译。(需保证实时同步一直工作)

步骤如下(这里以linux sever为例):

加下面代码段到pre-revprop-change以允许svnsync改写svn库属性:

if [ "$USER" = "svnsync" ]; then exit 0; fi

echo "Only the svnsync user can change revprops" >&2

SVN实时备份脚本,替换repo目录下的hook/post-commit,需服务器有python支持

#!/usr/bin/python

#coding=utf-8

import os

import commands

import sys

import logging

def init_log(log_level,logpath):

logger = logging.getLogger()

'''

from logging.handlers import RotatingFileHandler

ro_hdlr=RotatingFileHandler(logpath, maxBytes=0,backupCount=5)

logger.addHandler(ro_hdlr)

ro_hdlr.doRollover()

'''

hdlr = logging.FileHandler(logpath)

formatter = logging.Formatter('%(asctime)s [%(levelname)-8s %(module)s:%(lineno)d] %(message)s')

hdlr.setFormatter(formatter)

logger.addHandler(hdlr)

logger.setLevel(log_level)

return logger

repos=os.path.basename(sys.argv[1])

log=init_log(0,'/data/svnsynclog/' + repos + '_sync.log')

log.info("*"*20+repos)

output=commands.getoutput('/usr/bin/svnsync sync --non-interactive --username svnsync --password svnsync http://10.0.80.21/svn/'+repos)

log.info('sync log :'+output)

设置svnsync账号有master上的读取权限,mirror上的读写权限

然后提交一些变更测试一下,是否能实时同步过去。同步的日志放在/data/svnsynclog(设置成自己的目录)

OK, 完成。

手工从master到mirror的同步命令:

svnsync init --username svnsync http://10.0.80.21/svn/test http://10.0.80.20/svn/test

svnsync sync --username svnsync http://10.0.80.21/svn/test

SVN库实时同步设置的更多相关文章

  1. linux设置rsync+inotify实时同步文件

    linux设置rsync+inotify实时同步文件   应用场景: 同步接收方:test01 接收目录:/opt/software/test/a/ 同步发起方:test02 同步目录:/opt/so ...

  2. Oracle-DG 主库将log_archive_dest_state_2远程归档线程参数设置为defer,为什么dg还是处于实时同步状态?

    一.需求,前段时间,墨天伦有个小伙伴咨询了这个问题,搞了测试环境测试下. Oracle-DG 主库将log_archive_dest_state_2远程归档线程参数设置为defer,为什么dg还是处于 ...

  3. lsyncd 实时同步

    1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify + rsync,但随着文件数量的增大到100W+,目录下的 ...

  4. Linux下Rsync+sersync实现数据实时同步

    inotify 的同步备份机制有着缺点,于是看了sersync同步,弥补了rsync的缺点.以下转自:http://www.osyunwei.com/archives/7447.html 前言: 一. ...

  5. 烂泥:rsync与inotify集成实现数据实时同步更新

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上篇文章我们介绍了如何使用rsync同步文件,这篇文章我们再来介绍下,如何把rsync与inotify集成实现数据的实时同步. 要达到这个目的,我们需要 ...

  6. rsync+sersync实现文件实时同步

    前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...

  7. rsync+inotify实时同步环境部署记录

    随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足.首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件 ...

  8. sersync + rsync 实现文件的实时同步

    这里有一点要特别注意了,就是在你完成备份之后,先不要把本地的文件都给删除了,先把服务停了之后再删除文件, 因为你已删除,检查到两边不一致,他又会把备份端给删除了.所以特别得注意了.这里吃过一次亏. 还 ...

  9. 基于OGG的Oracle与Hadoop集群准实时同步介绍

    版权声明:本文由王亮原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/220 来源:腾云阁 https://www.qclou ...

随机推荐

  1. 后台获取ajax发送过来的值

    user.CityId = int.Parse(HttpContext.Request[ "bindArea"]); 以上为获取方法:

  2. UI1_UIScrollView

    // // AppDelegate.m // UI1_UIScrollView // // Created by zhangxueming on 15/7/10. // Copyright (c) 2 ...

  3. Angularjs入门学习一 简介

    本系列文章是从头开始学习angularjs,下文中用ng表示angularjs,要知道从以为根深蒂固的jquery开发者转变开发思想,确实需要一段时间,下面介绍以下 angularjs,我也是参考网上 ...

  4. 不容错过的七个jQuery图片滑块插件

    1.jQuery多图并列焦点图插件 今天我们要来分享一款比较特别的jQuery焦点图插件,它允许你自己定义当前画面的图片数量,在这个演示中,我们定义了3张图片一起显示.和其他jQuery焦点图一样,这 ...

  5. 分布式PostGIS系列【2】——pgpool-II

    一.pgpool-II简介 二.pgpool-II安装与配置 三.分布式Postgis性能测试

  6. 《RPM源码包的制作》RHEL6

    一下rpm包的创建不含编译部分: 首先写个脚本,这个脚本是你想干的事..useradd.sh是我写的脚本,批量添加20个用户.我们创建一个目录,将脚本放进去: 将此目录压缩: 我们将校验的key导出: ...

  7. 解决ubuntu 14.04 下eclipse 3.7.2 不能启动,报Could not detect registered XULRunner to use 或 org.eclipse.swt.SWTError: XPCOM 等问题的处理

    对于eclipse 3.7.2在ubuntu 14.04下不能启动,需要在 eclipse/configuration 目录下的config.ini文件内增加一行org.eclipse.swt.bro ...

  8. header页头内容整理

    meta标签 <meta charset="UTF-8"/> <!--视窗宽度--> <meta name="viewport" ...

  9. Java抽象类和抽象方法例子

    题目:定义Shape类表示一般二维图形.Shape具有抽象方法area和perimeter,分别计算形状的面积和周长.试定义一些二维形状类(如矩形.三角形.圆形等),这些均为Shape类的子类并计算出 ...

  10. Selenium 入门

    我本身也是一个初学者,就顺手记录一下自己的成长记录,共勉 1, 登录selenium官方网站,download 相关的插件. http://docs.seleniumhq.org/ 我用的是eclip ...