rsync + sersync2进行实时同步数据

rsync服务端:54.172.72.40

rsync+sersync2:120.26.68.152

首先安装rsync服务端:

表示已经有安装,于是编辑配置文件vim /etc/rsyncd.conf

uid = root

gid = root

use chroot = no

max connections = 2000

timeout = 300

pid file = /var/run/rsyncd.pid

lock file = /var/run/rsync.lock

log file = /var/log/rsyncd.log

ignore errors

port = 873

read only = false

list = false

hosts allow = 120.26.68.152             允许120.26.68.152的客户端

hosts deny = *

auth user = rsyncd_backup

secrets file = /etc/rsync.password

motd file = /etc/rsyncd.Motd

[data]

comment = data

path = /data/120.26.68.152      接收从120.26.68.152同步过来的数据,放在本地54.172.72.40目录

根据rsyncd.conf 文件的配置,在/etc 目录下创建同步的验证文件rsync.password

rsyncd_backup:redhat------>前者为用户名,后者为密码

chmod 600 /etc/rsync.password

mkdir -p /data/120.26.68.152

启动rsync服务:

rsync --daemon

查看服务是否启动:

由于我这一台是aws服务器,所以要修改安全组进站出口,打开tcp的873端口

接下来

在120.26.68.152主机上配置rsync.password,只需要添加如下内容

[[email protected]_test sersync]# cat /etc/rsync.password

redhat      该值为同步用户的密码

chmod 600 /etc/rsync.password

至此rsync的简单配置同步完成,尝试用手动命令同步数据

rsync -avzP /var/log/* [email protected]::data --password-file=/etc/rsync.password

提示:data为定义的模块名

然后在我的aws上/data/120.26.68.152目录下观察可以发现日志文件目录都同步过来了

[[email protected] ~]# cd /data/120.26.68.152/

[[email protected] 120.26.68.152]# ll

total 1156

drwxr-x---. 2 root root      6 May 28  2014 audit

-rw-r--r--. 1 root root   2036 Aug  5 02:22 boot.log

-rw-------. 1 root utmp   3072 Aug 12 06:31 btmp

drwxr-xr-x. 2 root root      6 Nov 10  2010 ConsoleKit

于是在此基础上安装sersync2软件

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

tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/

cd /usr/local/

ln -sv GNU-Linux-x86/ /usr/local/sersync

cp /usr/local/sersync/confxml.xml /usr/local/sersync/confxml.xml.bak

cp /usr/local/sersync/sersync2 /usr/sbin/

vim /usr/local/sersync/confxml.xml

修改如下几行

<debug start="true"/>   将debug信息打开

<localpath watch="/sersync">    修改120.26.68.152本地需要同步的目录

<remote ip="54.172.72.40" name="data"/>   修改远端服务器的ip和模块名

<auth start="false" users="rsyncd_backup" passwordfile="/etc/rsync.password"/>   修改同步用户验证信息

创建本地数据目录文件:mkdir /sersync -p

然后启动sersync

sersync2 -d -n 3 -o /usr/local/sersync/confxml.xml >> /var/log/sersync2.log 2>&1

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

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

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

然后进行同步验证:

cd /sersync/

[[email protected]_test sersync]# mkdir {a,b,c}

在aws54.172.72.40上观察如下结果

[[email protected] 120.26.68.152]# ll

total 0

drwxr-xr-x. 2 root root 6 Aug 16 22:15 a

drwxr-xr-x. 2 root root 6 Aug 16 22:15 b

drwxr-xr-x. 2 root root 6 Aug 16 22:15 c

至此同步成功

记:

一、为什么要用rsync+sersync架构?

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

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

二、rsync+inotify-tools与rsync+sersync这两种架构有什么区别?

1、rsync+inotify-tools

(1):inotify-tools只能记录下被监听的目录发生了变化(包括增加、删除、修改),并没有把具体是哪个文件或者哪个目录发生了变化记录下来;

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

2、rsync+sersync

(1):sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或某一个目录的名字;

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

小结:当同步的目录数据量不大时,建议使用rsync+inotify-tools;当数据量很大(几百g甚至1t以上)、文件很多时,建议使用rsync+sersync。

参考文章:http://www.linuser.com/thread-1318-1-1.html

时间: 2024-08-04 05:12:44

rsync + sersync2进行实时同步数据的相关文章

Rsync+inotify 实现实时同步数据文件

什么是Rsync? rsync可以实现增量备份,配合inotify可以实现时事的数据备份 Rsync的三种工作模式 1)本地备份,相当于 cp 命令 将 /etc/hosts 文件拷贝到 /tmp/ 目录下 rsync -avz /etc/hosts /tmp/ 删除一个目录 先新建一个空目录,然后使用 rsync 命令同步 mkdir /zhao 添加 --delete参数,目录 zhao 为空 rsync --delete /zhao/ /tmp/ 命令解释:以前面的目录为准,前面目录有啥后

rsync简介与rsync+inotify配置实时同步数据

rsync简介 rsync是linux系统下的数据镜像备份工具.使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主机同步. rsync特性 rsync支持很多特性: 可以镜像保存整个目录树和文件系统 可以很容易做到保持原来文件的权限.时间.软硬链接等等 无须特殊权限即可安装 快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件.rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽 安全:可以使用scp.

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

centos6.6配置rsync+sersync实现实时同步分布式多客户端分发同步

1.sersync项目: sersync项目利用inotify与rsync技术实现对服务器数据实时同步到解决方案,其中inotify用于监控sersync所在服务器上文件系统的事件变化,rsync是目前广泛使用的本地及异地数据同步工具,其优点是只对变化的目录数据操作. sersync项目的优点: 1)使用C++编写,对linux系统文件产生的临时文件和重复的文件操作会进行过滤,再结合rsync同步到时候,会减少网络资源,因此速度更快. 2)sersync配置起来很简单,在http://code.

Rsync+Inotify-client 实现实时同步

在前面的博文实践记录之-Rsync镜像备份介绍了镜像备份工具Rsync的安装和使用.但在大数据时代,rsync的不足之处也暴露出来. 首先.rsync本身实现不了实时备份.靠系统的crontab实现的话也受限于1分钟.因此这就导致了服务端和客户端数据可能出现不一致,更无法在应用故障时做到数据的完全恢复.其次,rsync在备份时,要扫描所有文件,这样效率就特别低,特别在数据量很大的时候. 不过,结合Inotify可以很好的解决Rsync在这方面的缺陷.基本实现原理是这样:通过使用shell脚本,获

rsync+inotify实现实时同步

1.数据同步: A服务器的一个目录同步到B服务器上的一个目录 方法是: 可以在A服务器上把这个目录共享(如ftp,http等),然后B服务器上写shell脚本,用crontab做定时任务下载过来(数据同步不实时) 实时同步 方法是: rsync远程目录实时同步 drbd远程存储实时同步(很老的方案) 共享存储,就是同一个磁盘设备同时被很多人用 分布式存储(云存储) 2.同步.异步和远程同步 sync同步 async异步 rsync 远程同步 这里主要说rsync,在开始之前需要了解以下几个问题:

第三十四天-rsync+inotify实现实时同步案例

推荐: Rsync结合Inotify 实时同步配置 rsync+inotify实现实时同步案例 rsync+inotify实现多台服务器之间数据实时同步 Linux下Rsync+Inotify-tools实现数据实时同步

CentOS6.4_64位下搭建Rsync+Inotify实现实时同步

CentOS6.4_64位下搭建Rsync+Inotify实现实时同步 rsync是linux下的文件同步服务,功能简单来说就是服务端打开873端口,客户端连接这个端口,并对服务器端配置的目录进行同步,可以理解为客户端比对服务器端资源后,对增量或者差异的数据进行增删改操作,功能支持上传(推送)或下载(获取)比对,也就是远程数据比对本地数据而后对远程数据进行增删改操作,以及本地数据比对远程数据然后对本地数据进行增删改操作. centos6.4下默认已经安装,只需保证依赖服务xinetd开启即可.

通过rsync+inotify实现实时同步

需求:web服务器未做存储上的HA,为了保证主备服务器上目录及文件能够实时同步,当主服务器宕机时可快速切换到备服务器上,需将主服务器上的某些目录的文件实时同步到备服务器上 那么我选择了rsync+inotify实现实时同步 首先要了解是从哪台服务器同步到哪台服务器,不能弄反了,尤其是生产系统,且在生产系统中,先做测试目录,如果生产服务器上数据量不大,应先做好备份工作 先说环境 OS:linux rhel6.2 x86_64 192.168.10.72 安装rsync 配置rsync.conf19