出处:http://code.google.com/p/sersync/

当前版本的sersync依赖于rsync进行同步。如下图所示,在同步主服务器上开启sersync,将监控路径中的文件同步到目标服务器,因此需要在主服务器配置sersync,在同步目标服务器配置rsync。sersync 使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件。

如图所示,在同步主服务器上配置sersync (可以不开启 rsync 服务,这样则可以从主服务器向目标服务器推送数据,但不可以从目标服务器向主服务器拉取数据),在同步目标服务器配置 rsync 并开启rsync守候进程,这样在主服务器产生的文件,就会被sersync实时同步到多个目标服务器。在centos系统下默认已经安装了rsync,只需进行配置,并开启rsync守候进程即可。

-----------------------------------------------------------------------------------------------------------------------------------------------
配置同步目标服务器 rsync

主服务器:   192.168.1.125

目标服务器:192.168.1.126  (可以多台目标服务器)

在多台目标服务器上配置如下,手动配置 rsyncd.conf 配置文件:
vi /etc/rsyncd.conf
uid = root

gid = root

max connections = 10

use chroot = no

log file = /var/log/rsyncd.log

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsyncd.lock
[tongbu]

path = /opt/tongbu

comment = hello world

ignore errors = yes

read only = no

hosts allow = 192.168.1.125

hosts deny = *
    上面配置文件,表明允许主服务器(ip为192.168.1.125 )访问,rsync同步模块名为[tongbu] ,将同步过来的文件放入目标服务器指定的目录 /opt/tongbu 。

如果有多台从服务器,则每一台都需要进行类似的配置。

配置好之后,开启rsync守护进程: rsync --daemon –-config=/etc/rsync.conf

在主服务器上安装配置sresync 在google code下载sersync的可执行文件版本,里面有配置文件与可执行文件,这里用sersync2.5进行说明,新版本配置形式类似。
tar -zxvf sersync2.5_64bit_binary_stable_final.tar.gz cd GNU-Linux-x86 vi confxml.xml
修改如下部分:
<sersync>

  <localpath watch= "/opt/tongbu" >

  <remote ip= "192.168.1.126" name= "tongbu" />

<!--<remote ip="0.0.0.0" name="tongbu"/>多个目标服务器则配置多个-->

  </localpath>
表示要将主服务器上本地的 /opt/tongbu 路径下的文件,同步到远程服务器   192.168.1.126 上的 tongbu 模块 。
在主服务器上开启sersync守护进程 ,使sersync在后台运行,开启实时同步。

./GNU-Linux-x86/sersync2 -r -d -o ../GNU-Linux-x86/confxml.xml

(加入rc.local自动启动,防止重启后忘记启动) 提示如下:

[root@localhost GNU-Linux-x86]# /tmp/GNU-Linux-x86/sersync2 -r -d -o /tmp/GNU-Linux-x86/confxml.xml
---------------------------------------------------------------------------------------------------
set the system param execute:echo 50000000 > /proc/sys/fs/inotify/max_user_watches execute:echo 327679 > /proc/sys/fs/inotify/max_queued_events parse the command param daemon thread num : 10 parse xml config file host ip : localhost     host port : 8008 config xml parse success please set /etc/rsyncd.conf max connections=0 Manually sersync working thread 12  = 1(primary thread) + 1(fail retry thread) + 10(daemon sub threads) please according your cpu ,use -n param to adjust the cpu rate run the sersync : watch path is : /opt/tongbu
---------------------------------------------------------------------------------------------------

表明,sersync已经开启,可以在本地监控路径下建立文件,查看远程是否同步成功。

-----------------------------------------------------------------------------------------------------------------------------------------------

运行参数说明:

./sersync -r 在开启实时监控的之前对主服务器目录与远程目标机目录进行一次整体同步

如果需要将sersync运行前,已经存在的所有文件或目录全部同步到远程,要以-r参数运行sersync,将本地与远程整体同步一次。 如果设置了过滤器,即在xml文件中,filter为true,则暂时不能使用-r参数进行整体同步。-r参数将会无效 ./sersync --help 查看启动参数帮助   ./sersync -o XXXX.xml 指定配置文件 ./sersync -n num 指定默认的线程池的线程总数 例如 ./sersync -n 5 则指定线程总数为5,如果不指定,默认启动线程池数量是10,如果cpu使用过高,可以通过这个参数调低,如果机器配置较高,可以用-n跳高线程总数。   ./sersync -m pluginName 不进行同步,只运行插件        例如./sersync -m command,则在监控到文件事件后,不对远程目标服务器进行同步,而是直接运行command插件。

-----------------------------------------------------------------------------------------------------------------------------------------------

常见错误:
ERROR: module is read only rsync error: syntax or usage error (code 1) at main.c(747) [receiver=2.6.8] rsync: connection unexpectedly closed (4 bytes received so far) [sender] rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6] 解决: 提示打开了read only,将配置文件 read only = no

cat /var/log/rsyncd.log

2011/12/14 11:58:37 [22377] name lookup failed for XX.XX.XX.XX: Name or service not known 2011/12/14 11:58:37 [22377] connect from UNKNOWN (XX.XX.XX.XX) 2011/12/14 11:58:37 [22377] rsync to html/ from unknown (XX.XX.XX.XX)

解决:需要在服务端这台机上上的/etc/hosts里面添加客户端机的ip和机器名

[root@Dell-R710 ~]# rsync -artuz -R --delete ./ 192.168.1.233::gex

rsync: failed to connect to 61.145.118.206: Connection refused (111)

rsync error: error in socket IO (code 10) at clientserver.c(124) [sender=3.0.6]

解决:

一、查看防火墙

二、查看服务端是否开启守护进程

ps ax|grep rsync

rsync --daemon --config=/etc/rsyncd.conf

 

sersync 实时同步工具的更多相关文章

  1. sersync实时同步实战

    第1章 实时同步 1.1 什么是实时同步 实时同步是一种只要当前目录触发事件,就马上同步到远程的目录.rsync 1.2 为什么要实时同步web->nfs->backup 保证数据的连续性 ...

  2. sersync 实时同步

    1.什么是实时同步 ​ 监控一个目录的变化, 当该目录触发事件(创建\删除\修改) 就执行动作, 这个动作可以是 rsync同步 ,也可以是其他. 2.为什么要实时同步 1.能解决nfs单点故障问题. ...

  3. 5. Sersync实时同步

    rsync+Sersync数据的实时同步 sersync介绍 1.什么是实时同步 监控一个目录的变化, 当该目录触发事件(创建\删除\修改) 就执行动作, 这个动作可以是 rsync同步 ,也可以是其 ...

  4. 5、Sersync实时同步实战

    1.实时同步概述 1.什么是实时同步, 只要当前目录发生变化则会触发一个事件,事件触发后将变化的目录同步至远程服务器. 2.为什么要实时同步, 保证数据的连续性, 减少人力维护成本, 解决nfs单点故 ...

  5. day04 sersync实时同步和ssh服务

    day04 sersync实时同步和ssh服务 sersync实时同步 1.什么是实时同步 实时同步是一种只要当前目录发生变化则会触发一个事件,事件触发后会将变化的目录同步至远程服务器. 2.为什么使 ...

  6. Sersync实时同步企业应用配置实战

    一.实验环境 CentOS版本: 6.6(2.6.32.-504.el6.x86_64) Rsync版本:  Rsync-3.0.6(系统自带) Sersync版本:sersync2.5.4_64bi ...

  7. Rsync + sersync 实时同步备份

    一      Rsync + Sersync  实时同步介绍 1.Rsync 服务搭建介绍 云机上搭建Rsync server,在本地搭建Rsync Clinet. 2. Sersync 服务搭建介绍 ...

  8. 搭建WEB、NFS共享、sersync实时同步以及全网定时备份服务流程

    本次实验的主要目的: 1.搭建web服务,使用nfs服务共享的/data目录挂载到web站点目录上. 2.nfs服务器与backup服务器使用sersync实时同步/data目录中的文件. 3.bac ...

  9. 三十、sersync高级同步工具实时数据同步架构

    一.项目介绍 Sersync项目利用inotity与rsync技术实现对服务器数据实时同步的解决方案,其中inotity用于监控sersync所在服务器上的文件变化. Sersync项目的优点: 1. ...

随机推荐

  1. IOS 使用Interface Builder开发界面入门与技巧

    引言: 通过Interface Builder(简称IB)来制作界面一直是iOS开发界饱受争议的方式.主要争议的话题是不太适合团队协作开发,再就是对IB的使用比较生疏,觉得IB只能完成一些很简单的功能 ...

  2. rabbitmq——用户管理

    安装最新版本的rabbitmq(3.3.1),并启用management plugin后,使用默认的账号guest登陆管理控制台,却提示登陆失败. 翻看官方的release文档后,得知由于账号gues ...

  3. Java设计模式15:常用设计模式之享元模式(结构型模式)

    1. Java之享元模式(Flyweight Pattern) (1)概述:       享元模式是对象池的一种实现,英文名为"Flyweight",代表轻量级的意思.享元模式用来 ...

  4. 常用html演示模板

    --学习测试新的css,js,经常用到test.html,在这里放一个: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition ...

  5. 向MyEclipse添加Oracle数据库

    向MyEclipse添加Oracle数据库 1.点击下面圈起来的位置,打开MyEclipse database Explorer视图. 2.在如图空白处右击,选择new进入New Database C ...

  6. linux配置LAMP

    VPS注意:最近在VPS安装过程中,MYSQL老是报错 dpkg: error processing package mysql-server-5.6 (--configure): subproces ...

  7. [改善Java代码]减少HashMap中元素的数量

    在系统开发中我们经常会使用HashMap作为数据集容器,或者是用缓冲池来处理,一般很稳定,但偶尔也会出现内存溢出的问题(OutOfMemory错误),而且这经常是与HashMap有关的.而且这经常是与 ...

  8. Android自动化测试介绍

    1.随机事件测试.通过adb命令执行测试Monkey 就是SDK中附带的一个工具, 用来做压力测试.应用程序crash 和 ANR时会产生日志. 然后根据关键字分析,就可以把应用出现的问题抓出来. 2 ...

  9. No Dialect mapping for JDBC type: -1

    MySQL数据库中有张表的字段是text,查询出来后对应的java类型是String,Dialect设置为org.hibernate.dialect.MySQLDialect 运行的时候报错:No D ...

  10. MyBatis(3.2.3) - Cache

    Caching data that is loaded from the database is a common requirement for many applications to impro ...