centos系统rsync+sersync实现数据实时同步

https://blog.51cto.com/xuegod/2322136

一台装sersync、一台装rsync服务

sersync服务器(数据源,源机器):192.168.0.63

rsync客户端(备份端,目标机器):192.168.0.64

1. 为什么要用rsync+sersync架构?

(1) sersync是基于inotify开发的,类似于inotify-tools的工具。

(2) sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的文件或者目录。

2. rsync+inotify-tools与rsync+sersync架构的区别?

(1) rsync+inotify-tools

1) inotify只能记录下被监听的目录发生了变化(增,删,改)并没有把具体是哪个文件或者哪个目录发生了变化记录下来。

2) rsync在同步的时候,并不知道具体是哪个文件或目录发生了变化,每次都是对整个目录进行同步,当数据量很大时,整个目录同步非常耗时(rsync要对整个目录遍历查找对比文件),因此效率很低。

(2) rsync+sersync

1) sersync可以记录被监听目录中发生变化的(增,删,改)具体某个文件或目录的名字。

2) rsync在同步时,只同步发生变化的文件或目录(每次发生变化的数据相对整个同步目录数据来说很小,rsync在遍历查找对比文件时,速度很快),因此效率很高。

3. 同步过程:

(1) 在同步服务器上开启sersync服务,sersync负责监控配置路径中的文件系统事件变化。

(2) 调用rsync命令把更新的文件同步到目标服务器。

(3) 需要在主服务器配置sersync,在同步目标服务器配置rsync server(注意:是rsync服务)。

4. 同步过程和原理:

(1) 用户实时的往sersync服务器上写入更新文件数据。

(2) 此时需要在同步主服务器上配置sersync服务。

(3) 在另一台服务器开启rsync守护进程服务,以同步拉取来自sersync服务器上的数据。

(4) 在另一台服务器开启rsync守护进程服务,使sersync push文件过来。

通过rsync的守护进程服务后可以发现,实际上sersync就是监控本地的数据写入或更新事件,然后,在调用rsync客户端的命令,将写入或更新事件对应的文件通过rsync推送到目标服务器,如图 2-3 所示。

图2-3 同步过程示意图

2.3.1 下载sersync

1.在google code下载sersync的可执行文件版本,里面有配置文件与可执行文件

wget https://sersync.googlecode.com/files/sersync2.5.4_64bit_binary_stable_final.tar.gz(有时下载失败,所有要本地留存一份)

2.上传到服务器 /opt目录下。

[[email protected] ~]# cd /opt #切换工作目录到/opt目录下。

[[email protected] opt]# tar xvf sersync2.5.4_64bit_binary_stable_final.tar.gz #解压。

[[email protected] opt]# mv GNU-Linux-x86 sersync #解压后的文件重命名为sersync。

2.3.2 配置sersync

[[email protected] opt]# cd sersync #切换工作目录至sersync目录下。

[[email protected] sersync]# cp confxml.xml confxml.xml.bak #备份配置文件,便于二次修改

1. 更改优化sersync配置文件:

[[email protected] sersync]# vim confxml.xml  #修改配置文件中的24--28行,如下所示。

<sersync>

<localpath watch="/var/www/html"> #本地同步数据目录。

<remote ip="192.168.0.64" name="wwwroot"/> #rsync模块名称

2. 修改31--34行,认证部分(rsync密码认证)。

<rsync>

<commonParams params="-artuz"/>

<auth start="true" users="rsyncuser" passwordfile="/etc/rsync.passwd"/>

<userDefinedPort start="false" port="874"/><!-- port=874 -->

<timeout start="false" time="100"/><!-- timeout=100 -->

<ssh start="false"/>

3. 开启sersync守护进程同步数据。

[[email protected] sersync]# /opt/sersync/sersync2  -d -r -o  /opt/sersync/confxml.xml

图 2-4 开启sersync守护进程

4. 测试

(1) 在63 /var/www/html/ 目录 增加、删除、或改目录文件。

(2) 看64 /web-back 目录的变化

[[email protected] web-back]# watch ls -l

5. 设置sersync监控开机自动执行

[[email protected] sersync]# vi /etc/rc.d/rc.local  #编辑rc.local文件,在最后添加一行。

/opt/sersync/sersync2 -d -r -o  /opt/sersync/confxml.xml   #设置开机自动运行脚本。

6. 添加脚本监控sersync是否正常运行

[[email protected] ~]# vi /opt/check_sersync.sh   #编辑脚本,添加以下代码。

#!/bin/sh

sersync="/opt /sersync/sersync2"

confxml="/opt /sersync/confxml.xml"

status=$(ps aux |grep ‘sersync2‘|grep -v ‘grep‘|wc -l)

if [ $status -eq 0 ];

then

$sersync -d -r -o $confxml &

else

exit 0;

fi

[[email protected] ~]# chmod +x /opt /check_sersync.sh  #添加脚本执行权限。

把这个脚本加到任务计划,定期执行检测。

原文地址:https://www.cnblogs.com/yaok430/p/12157835.html

时间: 2024-10-05 08:55:55

centos系统rsync+sersync实现数据实时同步的相关文章

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

inotify 的同步备份机制有着缺点,于是看了sersync同步,弥补了rsync的缺点.以下转自:http://www.osyunwei.com/archives/7447.html 前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改)具体某一个文件或某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的这个文件或者这个

Rsync+sersync实现数据实时同步

前言: 一.为什么要用Rsync+sersync架构? 1.sersync是基于Inotify开发的,类似于Inotify-tools的工具 2.sersync可以记录下被监听目录中发生变化的(包括增加.删除.修改)具体某一个文件或某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的这个文件或者这个目录. 二.Rsync+Inotify-tools与Rsync+sersync这两种架构有什么区别? 1.Rsync+Inotify-tools (1):Inotify-tools只能记录

centos7服务搭建常用服务配置之二:Rsync+sersync实现数据实时同步

目录 1.RSYNC数据备份 1.1 rsync服务简介 1.2 rsync特点和优势 1.3 rysnc运行模式简介 1.4 数据同步方式 2 Rsync实验测试 2.1 实验环境说明 2.2 服务安装 2.3 Rsync命令详解 2.3 实验一使用rsync命令备份数据 2.4 实验二使用rsyncd服务进行数据备份 3.Rsync+sersync实现数据实时同步 3.1 rsync+sersync架构作用 3.2 rsync+inotify-tools与rsync+sersync架构的区别

Linux Debian8 Rsync+Sersync实现数据实时同步

Rsync+sersync实现数据实时同步Rsync??Rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.Rsync使用所谓的"Rsync算法"来使本地和远 程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快.Rsync的基本特点如下:?1.可以镜像保存整个目录树和文件系统:?2.可以很容易做到保持原来文件的权限.时间.软硬链接等:?3.无须特殊权限即可安装:?4.优

centos 6.9使用Rsync+Inotify-tools实现数据实时同步

说明: 操作系统:CentOS 6.9 源服务器:192.168.1.222 备份服务器:192.168.1.1.233 目的:把源服务器上/backup目录实时同步到备份服务器的/backup目录下 一.在备份服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/config #编辑防火墙配置文件 #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 :wq! #保存,退出

sersync基于rsync+inotify实现数据实时同步

一.环境描述 需求:服务器A与服务器B为主备服务模式,需要保持文件一致性,现采用sersync基于rsync+inotify实现数据实时同步 主服务器A:192.168.1.23 从服务器B:192.168.1.243 实时同步/var/atlassian目录到从服务器. 二.实施 1.从服务器192.168.1.243 rsync服务搭建 1.1安装软件包 wget http://rsync.samba.org/ftp/rsync/src/rsync-3.1.1.tar.gz tar xf r

[转帖]sersync基于rsync+inotify实现数据实时同步

sersync基于rsync+inotify实现数据实时同步 https://www.jianshu.com/p/d532a34e5cc5 前言 提到数据同步就必然会谈到rsync,一般简单的服务器数据传输会使用ftp/sftp等方式,但是这样的方式效率不高,不支持差异化增量同步也不支持实时传输. 原文地址:https://www.cnblogs.com/nbxcnxvcnb/p/12393252.html

Linux下Rsync+Inotify-tools实现数据实时同步

说明: 一.先安装好rsync的服务端和客户端: http://douya.blog.51cto.com/6173221/1573968 二.安装,使用inotify-tools,实时同步 1.查看服务器内核是否支持inotify ll /proc/sys/fs/inotify   #列出文件目录,出现下面的内容,说明服务器内核支持inotify -rw-r--r-- 1 root root 0 Mar  7 02:17 max_queued_events -rw-r--r-- 1 root r

Linux下Rsync+Inotify-tools实现数据实时同步-(转载)

说明: 操作系统:CentOS 5.X 源服务器:192.168.21.129 目标服务器:192.168.21.127,192.168.21.128 目的:把源服务器上/home/www.osyunwei.com目录实时同步到目标服务器的/home/www.osyunwei.com下 具体操作: 第一部分:分别在两台目标服务器192.168.21.127,192.168.21.128上操作 一.分别在两台在目标服务器安装Rsync服务端 1.关闭SELINUX vi /etc/selinux/