SVN库实时同步设置
为了安全起见,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库实时同步设置的更多相关文章
- linux设置rsync+inotify实时同步文件
linux设置rsync+inotify实时同步文件 应用场景: 同步接收方:test01 接收目录:/opt/software/test/a/ 同步发起方:test02 同步目录:/opt/so ...
- Oracle-DG 主库将log_archive_dest_state_2远程归档线程参数设置为defer,为什么dg还是处于实时同步状态?
一.需求,前段时间,墨天伦有个小伙伴咨询了这个问题,搞了测试环境测试下. Oracle-DG 主库将log_archive_dest_state_2远程归档线程参数设置为defer,为什么dg还是处于 ...
- lsyncd 实时同步
1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify + rsync,但随着文件数量的增大到100W+,目录下的 ...
- Linux下Rsync+sersync实现数据实时同步
inotify 的同步备份机制有着缺点,于是看了sersync同步,弥补了rsync的缺点.以下转自:http://www.osyunwei.com/archives/7447.html 前言: 一. ...
- 烂泥:rsync与inotify集成实现数据实时同步更新
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上篇文章我们介绍了如何使用rsync同步文件,这篇文章我们再来介绍下,如何把rsync与inotify集成实现数据的实时同步. 要达到这个目的,我们需要 ...
- rsync+sersync实现文件实时同步
前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增 ...
- rsync+inotify实时同步环境部署记录
随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐渐暴露出了很多不足.首先,rsync在同步数据时,需要扫描所有文件后进行比对,进行差量传输.如果文件 ...
- sersync + rsync 实现文件的实时同步
这里有一点要特别注意了,就是在你完成备份之后,先不要把本地的文件都给删除了,先把服务停了之后再删除文件, 因为你已删除,检查到两边不一致,他又会把备份端给删除了.所以特别得注意了.这里吃过一次亏. 还 ...
- 基于OGG的Oracle与Hadoop集群准实时同步介绍
版权声明:本文由王亮原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/220 来源:腾云阁 https://www.qclou ...
随机推荐
- php面向对象的基础:创建OOP的方法
方法的创建 class Computer{ public function _run(){ return '我是类的一个公共方法'; } } $computer = new Computer(); / ...
- 分享9款极具创意的HTML5/CSS3进度条动画
1.HTML5/CSS3图片加载进度条 可切换多主题 今天要分享的这款HTML5/CSS3进度条模拟了真实的图片加载场景,插件会默认去从服务器下载几张比较大的图片,然后让该进度条展现当前读取图片的进度 ...
- [GeekBand]C++高级编程技术(2)
本篇笔记主要分为两个主要部分,第一部分关于对象模型,第二部分是关于new和delete的更加深入的学习. 一.对象模型 关于vptr(虚指针)和vtbl(虚函数表) 只要用到了虚函数,对象中就会多一个 ...
- NFS网络操作系统介绍以及相关应用
1. NFS服务简介 NFS是Network File System 的缩写,中文名称为网络文件系统,由Sun公司开发,功能是通过网络让不同的机器.不同的操作能够彼此分享数据,让应用程序在客户端通过网 ...
- activiti搭建(二)与Spring集成
转载请注明源地址:http://www.cnblogs.com/lighten/p/5876773.html 本文主要讲解如何将Activiti和Spring框架集成,再过一段时间将会将一个基础的de ...
- 编译安装HTTPD 2.4.9版本
编译安装HTTPD 2.4.9版本 服务脚本:/etc/rc.d/init.d/httpd 脚本配置文件路径:/etc/sysconfig/httpd 运行目录:/etc/httpd ...
- Java中的集合类
实线边框的是实现类,比如ArrayList,LinkedList,HashMap等 折线边框的是抽象类,比如AbstractCollection,AbstractList,AbstractMap等, ...
- 9种jQuery和css3图片动画特效代码演示
1.自由旋转的jQuery图片 演示和下载地址 2.css3阴影动画效果 演示和下载地址 3.拉窗帘特效图片 演示和下载地址 4.css3文字特效动画 演示和下载地址 5.css3时钟代码 演示和下载 ...
- Nginx启动、停止与平滑重启
如何启动Nginx:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 停止Nginx:可以发送向通信号给Nginx主进程的 ...
- (转)可收缩、扩展的TextView
在一些应用中,比如腾讯的应用市场APP应用宝,关于某款应用的介绍文字,如果介绍文字过长,那么不是全部展现出来,而是显示三四行的开始部分(摘要),预知全部的内容,用户点击展开按钮即可查阅全部内容.这样的 ...