Sersync实时同步

sersync利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对文件不同的部分进行操作,所以其优势大大超过使用挂接文件系统的方式进行镜像同步。由金山的周洋开发完成,是目前使用较多的文件同步工具之一。该工具和其他的工具相比有如下优点:

sersync是使用c++编写,由于只同步发生更改的文件,因此比其他同步工具更节约时间、带宽;

安装方便、配置简单;

使用多线程进行同步,能够保证多个服务器实时保持同步状态;

自带出错处理机制,通过失败队列对出错的文件重新出错,如果仍旧失败,则每10个小时对同步失败的文件重新同步;

自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次;

自带socket与http协议扩展,你可以方便的进行二次开发;

数据从192.168.10.180同步到192.168.10.175

客户端:192.168.10.175

安装rsync

yum -y install rsync

cat /etc/rsyncd.conf

pid file =/var/run/rsyncd.pid
lock file =/var/run/rsync.lock
log file =/var/log/rsyncd.log
uid = nobody
gid = nobody
use chroot = no
[data]
path =/data
ignore errors = no 
read only = no  
write only = no   
uid = root
gid = root
auth users = root  
secrets file = /etc/rsync.password

[[email protected] data]# cat /etc/rsync.password

root:123456

启动rsync:/usr/bin/rsync --daemon

服务端:192.168.10.180

安装rsync

yum -y install rsync

新建/etc/rsync.password 文件

[[email protected] data]# cat /etc/rsync.password 
123456

安装sersync

wget https://sersync.googlecode.com/files/sersync2.5_64bit_binary_stable_final.tar.gz
tar -zxvf sersync2.5_64bit_binary_stable_final.tar.gz
mkdir /usr/local/sersync/
mv GNU-Linux-x86/* /usr/local/sersync/

vim confxml.xml

   <sersync>
        <localpath watch="/data">    #设置监控目录,有文件改动就会同步。在服务端
            <remote ip="192.168.10.175" name="data"/>  #客户端IP及模块名
        </localpath>
        <rsync>
            <commonParams params="-artuz"/>
            <auth start="true" users="root" passwordfile="/etc/rsync.password"/> #启动验证,填写验证的用户名及密码存放文件
            <userDefinedPort start="false" port="874"/><!-- port=874 -->
            <timeout start="false" time="100"/><!-- timeout=100 -->
            <ssh start="false"/>
        </rsync>

#在confxml.xml是默认的配置文件,只需修改上面有注释的三行。上面只是配置文件中的一部分。

vim /etc/init.d/sersync   #sersync启动脚本

#! /bin/bash  
#chkconfig: 35 10 90
#description: 监控目标目录[事件触发]同步到备份机
#  
. /etc/rc.d/init.d/functions
case "$1" in
       start)
       cd /usr/local/sersync
       ./sersync2 -r -d
        if [ $? -eq 0 ]
                then
                echo -e "Staring sersyncd      [  OK  ]" 
                exit 0
        fi
        ;;
        stop)
        kill `ps aux | grep sersync2 | grep -v grep | awk ‘{print $2}‘`
        if [ $? -eq 0 ]
               then
                echo -e "Stopping sersyncd     [  OK  ]" 
                exit 0
        fi
        ;;
       status)
        ps aux | grep sersync2 | grep -v grep
        ;;
esac

启动sersync

[[email protected] sersync]# /etc/init.d/sersync start

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: -r rsync all the local files to the remote servers before the sersync work
option: -d run as a daemon
daemon thread num: 10
parse xml config file
host ip : localhosthost port: 8008
daemon start,sersync run behind the console 
use rsync password-file :
user isroot
passwordfile is /etc/rsync.password
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 ./ [email protected]::data --password-file=/etc/rsync.password >/dev/null 2>&1 
run the sersync: 
watch path is: /data
Staring sersyncd      [  OK  ]

sersync参数介绍

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

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参数,则默认执行同步程序
________________________________________________________________
时间: 2024-10-02 10:51:32

Sersync实时同步的相关文章

rhel下文件的同步:sersync实时同步和drbd双向同步

sersync(873端口)实时同步(单向同步) 需要注意:纯粹的使用rsync做单向同步时,rsynx的守护进程是运行在文件推送服务器上,而接收的服务器是运行rsync客户端.使用sersync做文件实时同步刚好相反,用于接收文件的服务器运行rsync守护进程. sersync主要用于服务器同步,web镜像等功能.基于boost1.43.0,inotify api,rsync command.开发.目前使用的比较多的同步解决方案是inotify-tools+rsync ,另外一个是google

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

一.实验环境 CentOS版本: 6.6(2.6.32.-504.el6.x86_64) Rsync版本:  Rsync-3.0.6(系统自带) Sersync版本:sersync2.5.4_64bit_binary_stable_final.tar.gz(下载上传) 二.准备工作 查看系统是否支持inotify及参数优化: [[email protected] ~]# ls -l  /proc/sys/fs/inotify/ ------------------ 总用量 0 0 dr-xr-x

Rsync + sersync 实时同步备份

Rsync + sersync 实时同步备份 一      Rsync + Sersync  实时同步介绍 1.Rsync 服务搭建介绍 云机上搭建Rsync server,在本地搭建Rsync Clinet. 2. Sersync 服务搭建介绍 在本地服务器上搭建 Sersync  Server  检测本地的ftp目录变化,实时同步到云机上 二.Rsync编译安装 1.检查本机是否存在 [[email protected]云机 ~]# rpm -qa  rsync rsync-3.0.6-12

Rsync+sersync 实时同步

# #sersync 下载地址 #rsync CentOS系统包里面有 #rsync 详解 #sersync 详解 #逻辑图 主机名 IP地址 Storage_1             目标服务器 192.168.174.137 Storage_2               源服务器 192.168.174.138 #均关闭防火墙和selinux #目标服务器rsync 作为守护进程  , 源服务器rsync 作为客户端 #rsync支持推送和拉取 #sersync 实时监控目录 #目标服务

Rsync+Sersync实时同步

一.基本介绍 1.什么是Rsync? Rsync(Remote Synchronize)是一款开源的.快速的.多功能的.可以实现全量及增量的本地或远程数据同步备份的优秀工具,并且支持多种操作系统平台运行. 官网文档:https://rsync.samba.org/ftp/rsync/rsync.html 2.Rsync简介 Rsync具有本地与远程两台主机之间的数据快速复制同步镜像.远程备份等功能,该功能类似scp,但是优于scp功能,还具有本地不同分区目录之间全量及增量复制数据. Rsync同

20170705L07-09-03老男孩linux运维实战培训-Sersync实时同步软件实战应用指南-2

接上一节继续说的sersync 这一节讲的是sersync的实际实验 主服务器sersync的安装,设置 然后是同步的演示 让人能更加了解同步自动化软件的原理 其中对实时同步进行了说明 当同步量很大的时候 可能客户机并不能实时进行更新

Sersync实时同步软件

本项目利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对文件不同的部分进行操作,所以其优势大大超过使用挂接文件系统的方式进行镜像同步.目前使用的比较多的同步程序版本是inotify-tools,另外一个是google开源项目Openduckbill(依赖于inotify-tools),这两个都是基于脚本语言编写的,其设计思路同样是采用inotify与rsync命令. 相比较上面两个项目,本项目优点是: 1.

Rsync+Sersync实时同步数据目录

第1章 Rsync简介 1.1 Rsync基本概述 rsync是一款开源的备份工具,可以在不同主机之间进行同步,可实现全量备份与增量备份 全量:将全部数据,进行传输覆盖 增量:只传输差异部分的数据 1.2 实现增量复制的原理 Rsync通过其独特的“quick check”算法,实现增量传输数据 在同步备份数据时,默认情况下,Rsync通过其独特的“quick check”算法,它仅同步大小或者最后修改时间发生变化的文件或目录,当然也可根据权限,属主等属性的变化同步,但需要指定相应的参数,甚至可

5、Sersync实时同步实战

1.实时同步概述 1.什么是实时同步, 只要当前目录发生变化则会触发一个事件,事件触发后将变化的目录同步至远程服务器. 2.为什么要实时同步, 保证数据的连续性, 减少人力维护成本, 解决nfs单点故障 3.实时同步实现原理, 实时同步需要借助 Inotify通知接口,用来监控目录的变化,如果监控的目录发生变更.则触发动作,这个动作可以是进行一次同步操作,或其他操作. 4.实时同步工具选择, 有sersync(√).inotify+rsync,通常我们会选择 sersync,因为 sersync