sersync文件实时同步

1、要实现的目的:

把主机A中 /data 目录中的数据实时同步到主机B中 /data 目录中

2、下载所需要的软件

sersync2.5.4

https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz

3、配置

在主机A上:

解压后只有两个文件,sersync2,命令执行文件; confxml.xml,配置文件

[[email protected] sersync]# pwd

/usr/local/sersync

[[email protected] sersync]# ls

confxml.xml  sersync2

查看命令执行文件的帮助信息;

[[email protected] sersync]# ./sersync2 -h

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

_______________________________________________________

参数-d:启用守护进程模式

参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍

c参数-n: 指定开启守护线程的数量,默认为10个

参数-o:指定配置文件,默认使用confxml.xml文件

参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块

参数-m:单独启用其他模块,使用 -m socket 开启socket模块

参数-m:单独启用其他模块,使用 -m http 开启http模块

不加-m参数,则默认执行同步程序

________________________________________________________________

通过命令帮助信息就知道要实现同步功能,只要执行以下命令就可以做到。

./sersync2 -d -r

如果有多个目录需要同步,那只要起多个进程然后用-o选项指定不同的配置文件。例如线上的配置:

/usr/local/sersync/bin/sersync -d -o /usr/local/sersync/conf/download.xml

/usr/local/sersync/bin/sersync -d -o /usr/local/sersync/conf/ddbill.xml

/usr/local/sersync/bin/sersync -d -o /usr/local/sersync/conf/dinpay.xml

配置文件confxml.xml参数配置

实现同步主要配置23-44行,  <sersync>.....</sersync> 中的内容

默认配置文件中的内容如下:

      <sersync>
         <localpath watch="/opt/tongbu">
             <remote ip="127.0.0.1" name="tongbu1"/>
             <!--<remote ip="192.168.8.39" name="tongbu"/>-->
             <!--<remote ip="192.168.8.40" name="tongbu"/>-->
         </localpath>
         <rsync>
             <commonParams params="-artuz"/>
             <auth start="false" users="root" passwordfile="/etc/rsync.pas"/>
             <userDefinedPort start="false" port="874"/><!-- port=874 -->
            <timeout start="false" time="100"/><!-- timeout=100 -->
             <ssh start="false"/>
         </rsync>
         <failLog path="/tmp/rsync_fail_log.sh" timeToExecute="60"/><!--default every 60mins execute once-->
         <crontab start="false" schedule="600"><!--600mins-->
             <crontabfilter start="false">
                 <exclude expression="*.php"></exclude>
                 <exclude expression="info/*"></exclude>
             </crontabfilter>
         </crontab>
         <plugin start="false" name="command"/>
     </sersync>

简单实现功能的话其实只要配置

         <localpath watch="/opt/tongbu">
             <remote ip="127.0.0.1" name="tongbu1"/>
             <!--<remote ip="192.168.8.39" name="tongbu"/>-->
             <!--<remote ip="192.168.8.40" name="tongbu"/>-->
         </localpath>

这几行就可以了

watch后面跟的就是本地要同步到远程的目录

ip后面跟的就是远程主机的ip地址; name后面跟的是远程主机中rsync  daemon模式中rsyncd.conf文件中的模块名

如果要同步到多台机器,就把每台机器写一个<remote> 标签

主机A中的配置文件修改如下:

[[email protected] sersync]# sed -n ‘24,28p‘ confxml.xml

<localpath watch="/data">

<remote ip="192.168.2.175" name="data"/>

</localpath>

<rsync>

<commonParams params="-artuz"/>

[[email protected] sersync]#

在主机B上:

配置/data目录为rsync daemon中的模块名和目录。

rsyncd.conf简单配置如下

[[email protected] data]# cat /etc/rsyncd.conf

uid=root

gid=root

max connections=36000

use chroot=no

log file=/var/log/rsyncd.log

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsyncd.lock

[data]

path=/data

#ignore errors (开启会在日志中报错误)

read only = no

hosts allow = 192.168.2.0/24

hosts deny = *

配置文件修改好了后就可以启动rsync daemon模式

[[email protected] data]# rsync --daemon

[[email protected] data]# ss -tlnp|grep 873

0      5                             :::873                          :::*      users:(("rsync",10042,5))

0      5                              *:873                           *:*      users:(("rsync",10042,4))

[[email protected] data]#

这样主机B就配置完毕了~

现在再回到主机A中执行 ./sersync2 -d -r 命令启动实时同步.

[[email protected] sersync]# ./sersync2 -d -r

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

option: -d      run as a daemon

option: -r      rsync all the local files to the remote servers before the sersync work

daemon thread num: 10

parse xml config file

host ip : localhost     host port: 8008

daemon start,sersync run behind the console

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)

Max threads numbers is: 22 = 12(Thread pool nums) + 10(Sub threads)

please according your cpu ,use -n param to adjust the cpu rate

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

rsync the directory recursivly to the remote servers once

working please wait...

execute command: cd /data && rsync -artuz -R --delete ./ 192.168.2.175::data >/dev/null 2>&1

run the sersync:

watch path is: /data

[[email protected] sersync]# ps -ef|grep sersync2

root      21640      1  0 03:30 ?        00:00:00 ./sersync2 -d -r

4、演示

现在我们进入主机A和主机B中的/data目录,做一些简单演示操作

[[email protected] /-19:38:31]#ls /data

[[email protected] /-19:38:38]#

[[email protected] /-19:38:32]#ls /data

[[email protected] /-19:38:42]#

[[email protected] /-19:39:48]#cd data

[[email protected] data-19:39:53]#touch 1 2 3 4 5

[[email protected] data-19:40:15]#ls

1  2  3  4  5

[[email protected] data-19:40:21]#

[[email protected] /-19:39:49]#cd  data

[[email protected] data-19:39:56]#ls

1  2  3  4  5

[[email protected] data-19:40:23]#

[[email protected] data-19:41:43]#rm 1 2 3 -f

[[email protected] data-19:41:49]#ls

4  5

[[email protected] data-19:41:50]#

[[email protected] data-19:40:23]#ls

4  5

[[email protected] data-19:41:50]#echo 44444444 > 4

[[email protected] data-19:48:38]#echo 55555555 > 5

[[email protected] data-19:48:46]#cat 4 5

44444444

55555555

[[email protected] data-19:48:53]#

[[email protected] data-19:49:14]#cat 4

44444444

[[email protected] data-19:49:16]#cat 5

55555555

[[email protected] data-19:49:18]#

时间: 2024-10-12 11:32:20

sersync文件实时同步的相关文章

基于sersync海量文件实时同步

今天我们主要讲解海量文件实时同步,最近涉及到数百万图片数据迁移,为了使图片数据快速迁移,并保证数据数据的一致性,无缝切换.尝试了多种方案. 方案1:rsync+inotify同步,最先想到的是此方案,以前在多台服务器间的做代码同步就常用此方法,因为代码文件数并不多.现在用在海量文件同步时,其缺陷也暴露出来,分析原理后,我们知道,每次新增数据都会做一次全量同步,在数据量不大的情况下同步挺快,但当文件数达到数百万就相当慢,每次对比整个目录的数量庞大的文件:第二,inotify监听的事件也非常多,创建

sersync2+rsync目录文件实时同步备份

说明: 192.168.1.2(sersync+rsync)---------------FTP 192.168.1.3(rsync)--------------------------backup 实验目的: 实时自动同步:192.168.1.2 ------->192.168.1.3到目录:/data/ftpdata ; 764  viconfxml.xml 765  ./GNU-Linux-x86/sersync2 -d -r confxml.xml 767  ./GNU-Linux-x8

sersync+rsync实时同步配置案例

目前业内比较靠谱的同步解决方案有: rsync+inotify-tools,Openduckbill+inotify-tools和rsync+sersync 前两者由于是基于脚本语言编写,所以规范程度,执行效率相对rsync+sersync就稍微弱一些. sersync是使用c++编写,基于boost1.43.0,inotify api,rsync command开发,主要用于服务器同步,web镜像等功能.其对linux系统文件系统产生的临时文件和重复的文件操作能够进行过滤,所以在结合rsync

Rsync+inotify实现文件实时同步

数据备份.文件备份是运维.DBA等岗位最熟悉不过的话题,这里不介绍数据库的备份,简单介绍一下文件同步工具,这样的工具有很多,Windows环境下有Goodsync.FreeFileSync等,Linux下rsync.unison等,常用的实时同步,是几种工具的组合,经过组合的工具达到文件实时同步的效果. 一.常用实时同步方案 1.NFS网络文件系统 该方案是分布式架构中,解决不同节点对同一资源访问的问题,搭建NFS服务器,将其挂载在不同的节点,每个节点将公用的数据存储在NFS服务器上,实现文件的

rsync+inotify-tools文件实时同步

rsync+inotify-tools文件实时同步案例 全量备份 Linux下Rsync+sersync实现数据实时同步完成. 增量备份 纯粹的使用rsync做单向同步时,rsync的守护进程是运行在文件推送的服务器上,而接收的服务器是运行rsync客户端.使用sersync做文件实时同步刚好相反,用于接收文件的服务器运行rsync守护进程.

(转)Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步

Linux下通过rsync与inotify(异步文件系统事件监控机制)实现文件实时同步原文:http://www.summerspacestation.com/linux%E4%B8%8B%E9%80%9A%E8%BF%87rsync%E4%B8%8Einotify%E5%BC%82%E6%AD%A5%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%BA%8B%E4%BB%B6%E7%9B%91%E6%8E%A7%E6%9C%BA%E5%88%B6%E5%AE%9E

Sersync+rsync实时同步

Sersync+rsync实时同步服务端设置(相当于备份服务器)1.确认rsync是否安装[[email protected] ~]# rpm -qa|grep rsyn*rsyslog-5.8.10-10.el6_6.x86_64rsync-3.0.6-12.el6.x86_64 2.服务端按转有rsync工具没有可以yum安装yum install rsync -y 3.配置rsync配置文件,原先是没有的需要创建cat >>/etc/rsyncd.conf<<EOFuid =

sersync/lsyncd实时同步

第一章 sersync/lsync实时同步 1.1 实时同步服务原理/概念 1)需要部署好rsync守护进程服务,实现数据传输 2)需要部署好inotify服务,实现目录中数据变化监控 3)将rsync服务和inotify服务建立联系,将变化的数据进行实时备份传输 1.2 inotify介绍 ? Inotify是一种强大的,细粒度的,异步的文件系统事件监视机制,Linux2.6.13起加入了inotify支持,通过inotify可以监控文件系统中添加,删除,修改,移动等各种事件,利用这个内核接口

rsync+inotify 实现服务器之间目录文件实时同步(转)

软件简介: 1.rsync 与传统的 cp. tar 备份方式相比,rsync 具有安全性高.备份迅速.支持增量备份等优点,通过 rsync 可 以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定 期做数据镜像等. 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync 在高端业务系统中 也逐渐暴露出了很多不足,首先,rsync 同步数据时,需要扫描所有文件后进行比对,进行差量传输.如 果文件数量达到了百万甚至千万量级,扫描所有