Rsync+Sersync的实时c/s 模式同步
  TEZNKK3IfmPf 2023年11月14日 23 0

                 Rsync+Sersync的实时c/s 模式同步

书接上回,https://blog.csdn.net/alwaysbefine/article/details/108948231(这是上一个博客的拓展,连着看才可以懂哦),服务器端的搭建是实现该架构的基础,具体的rsync服务器搭建看上面的链接。sersync是安装在客户端的哦,不要搞混淆了(本次内容结合上一篇博客看)。

其实,sersync并不能算是完全实时,其原因为sersync必须先检测本地目录和文件后,才开始执行rsync同步,而检测是手动执行的,后面会讲到具体的原因。

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

由于,sersync可以记录下被监听目录中发生变化的(包括增加、删除、修改)具体某一个文件或者某一个目录的名字,然后使用rsync同步的时候,只同步发生变化的文件或者目录 ,因此,rsync在同步时,只同步发生变化的文件或目录(每次发生变化的数据相对整个同步目录数据来说很小,rsync在遍历查找对比文件时,速度很快),因此效率很高。

说人话,sersync比inotify效率要高,原因是只同步发生变化的文件或者目录,而inotify并不是。大数据量时请使用sersync(几百个G或者上t,这样的算数据量大)。

书接上回,在192.168.0.16这台机器上安装sersync

 

1、下载sersync

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

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

2.解压文件到 /usr/local/src/

tar -zxf  sersync2.5.4_64bit_binary_stable_final.tar.gz 

mv mv GNU-Linux-x86 /usr/local/src/sersync

解压出来的文件就两个

[root@localhost sersync]# pwd
/usr/local/src/sersync
[root@localhost sersync]# ls -al
total 1772
drwxr-xr-x. 2 root root      41 Oct  7 14:18 .
drwxr-xr-x. 3 root root      21 Oct  7 14:09 ..
-rwxr-xr-x. 1 root root    2226 Oct  7 14:12 confxml.xml
-rwxr-xr-x. 1 root root 1810128 Oct 26  2011 sersync2

3.链接可执行文件 sersync2 到 /usr/local/bin/

ln -s /usr/local/src/sersync/sersync2 /usr/local/bin/

4.编辑 confxml.xml文件

修改24--28行

<sersync>

<localpath watch="/var/log/httpd"> #本地同步目录

<remote ip="192.168.0.17" name="httpd_back"/> #rsync服务器192.168.0.17上的模块名称

修改31--34行,认证部分【rsync密码认证】

<rsync>

<commonParams params="-artuz"/>

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

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

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

<ssh start="false"/>

5.写任意一个脚本,内容如下:

#!/bin/bash
#! author zsk_john
sersync2 -dr -o /usr/local/src/sersync/confxml.xml

6.执行它!!!如下输出即为正确。

rsync the directory recursivly to the remote servers once
working please wait...
execute command: cd /var/log/httpd && rsync -artuz -R --delete ./ rsync@192.168.0.17::httpd_back --password-file=/etc/rsync.passwd >/dev/null 2>&1 
run the sersync: 
watch path is: /var/log/httpd

7.验证

访问192.168.0.16的httpd服务,

curl 192.168.0.16 这个命令多执行几次,刷一些日志记录,执行第六步所创建的脚本,在192.168.0.17的 /mnt/httpd_back/access.log文件内,可以看到日志记录。(192.168.0.17不安装httpd哦!!)

每次需要同步的时候,执行脚本即可。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

TEZNKK3IfmPf