实时同步服务

Posted 朋末西林

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实时同步服务相关的知识,希望对你有一定的参考价值。

实时同步服务原理/概念

1、需要部署好rsync守护进程服务,实现数据传输

2、需要部署好inotify服务,实现目录中数据变化监控

3、将rsync服务和inotify服务建立联系,将变化的数据进行实时备份传输

实时同步服务部署

1、部署好rsync守护进程

服务端配置操作

客户端配置操作

2、部署inotify监控服务

第一个步骤:安装软件

yum install -y inotify-tools

第二个步骤:熟悉命令的使用

/usr/bin/inotifywait --- 监控目录数据信息变化

/usr/bin/inotifywatch --- 对监控的变化信息进行统计

inotifywait命令使用方法:详情man inotifywait

inotifywait [参数] 监控的目录

-m|--monitor --- 实现一直监控目录的数据变化

-r|--recursive --- 进行递归监控

-q|--quiet --- 尽量减少信息的输出

--format <fmt> --- 指定输出信息的格式

--timefmt <fmt>--- 指定输出的时间信息格式

-e|--event --- 指定监控的事件信息

sed命令修改文件原理

/data/ OPEN user14 --- 打开文件

/data/ CREATE sednF7YoX --- 创建出一个临时文件(内存中模式空间)

/data/ OPEN sednF7YoX --- 临时文件进行打开

/data/ ACCESS user14 --- 读取源文件内容

/data/ MODIFY sednF7YoX --- 修改临时文件

/data/ ATTRIB sednF7YoX --- 临时文件属性变化

/data/ CLOSE_NOWRITE,CLOSE user14 --- 不编辑直接关闭源文件

/data/ CLOSE_WRITE,CLOSE sednF7YoX --- 写入关闭临时文件

/data/ MOVED_FROM sednF7YoX --- 将临时文件移除

/data/ MOVED_TO user14 --- 移入一个新的user14源文件

inotify监控命令格式:

inotifywait -mrq --timefmt "%F" --format "%T %w %f 事件信息:%e" /data -e CREATE

create创建、delete删除、moved_to移入、close_write修改(一般监控的事件)

企业应用:防止系统重要文件被破坏

需要用到inotify进行实时一直监控

3、部署sersync同步服务

第一个历程:需要下载,保留上传到linux服务器中

https://github.com/wsgzao/sersync

上传linux服务器

rz -y --- 选择需要上传的数据信息

PS:软件尽量都统一保存在/server/tools目录中

第二个历程:解压软件压缩包,将解压后的数据进行保存

unzip sersync-master.zip 
[root@nfs01 tools]# tree sersync_installdir_64bit
sersync_installdir_64bit
└── sersync
├── bin --- sersync软件命令目录
│ └── sersync
├── conf --- sersync软件配置目录
│ └── confxml.xml
└── logs --- sersync软件日志目录
[root@nfs01 tools]# mv sersync_installdir_64bit/sersync/ /usr/local/

第三个历程:编写配置文件:

vim conf/confxml.xml
<filter start="false">
<exclude expression="(.*)\\.svn"></exclude>
<exclude expression="(.*)\\.gz"></exclude>
<exclude expression="^info/*"></exclude>
<exclude expression="^static/*"></exclude>
</filter>
说明:排除指定数据信息不要进行实时传输同步
<inotify>
<delete start="true"/>
<createFolder start="true"/>
<createFile start="false"/>
<closeWrite start="true"/>
<moveFrom start="true"/>
<moveTo start="true"/>
<attrib start="false"/>
<modify start="false"/>
</inotify>
说明:定义inotify程序需要监控的事件
<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"/> --- 指定rsync推送命令参数
<auth start="false" users="root" passwordfile="/etc/rsync.pas"/> --- 指定rsync认证用户,指定resync认证文件
<userDefinedPort start="false" port="874"/><!-- port=874 -->

第四个历程:启动sersync服务程序

先添加环境变量

[root@nfs01 bin]# export PATH="$PATH:/usr/local/sersync/bin"
[root@nfs01 bin]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/sersync/bin

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

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

进行同步测试

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

-o /usr/local/sersync/conf/confxml.xml

-o /usr/local/sersync/conf/confxml02.xml

sersync -dro /usr/local/sersync/conf/confxml.xml  启动实时同步服务
yum install -y psmisc
killall sersync 停止实时同步服务
echo sersync -dro /usr/local/sersync/conf/confxml.xml >>/etc/rc.local 开机自动启动

实时同步服务概念总结

1、实现实时同步的原理

监控目录数据变化 --- inotify

将数据进行传输 --- rsync

      将监控和传输进行整合 --- sersync

2、实现实时同步部署方法

1、部署rsync守护进程

2、部署inotify软件

3、部署sersync软件

以上是关于实时同步服务的主要内容,如果未能解决你的问题,请参考以下文章

基于sersync海量文件实时同步

rsync+inotify文件实时同步

实时同步服务

inotify+rsync实现实时同步

inotify+rsync实现实时同步

四.实时同步