1.实时同步服务原理
01.需要部署好rsync守护进程服务,实现数据传输
02.需要部署好inotify服务,实现目录中数据变化监控
03.将rsync服务和inotify服务建立联系,将变化的数据进行实时备份传输
2.实时同步服务部署:
01部署rsync守护进程
服务端和客户端配置操作
02部署inotify监控服务
a.安装软件: yum install -y inotify-tools
b.熟悉命令的使用:
/usr/bin/inotifywait --- 监控目录数据信息变化(常用)
/usr/bin/inotifywatch ---对监控的变化信息进行统计
c.inotifywait命令使用方法:
inotifywait参数 监控的目录
-m|--monitor --- 实现一直监控目录的数据变化
-r|--recursive --- 进行递归监控
-q|--quiet --- 尽量减少信息的输出
--format<fmt> --- 指定输出信息的格式
--timefmt --- 指定输出的时间信息格式
-e|--event --- 指定监控的事件信息
inotify监控命令格式:
inotifywait -mrq --timefmt "%F" --format "%T %w %f 事件信息:%e" /data -e CREATE
2018-02-03 /data/data01/ lin02.txt 事件信息:CREATE %T为时间, %w为监控目录 %f为改变的文件 %e为事件类型
create 创建 , delete删除, moved_to移入 ,close_write修改
d.企业应用:防止系统重要文件被破坏
需要用到inotify进行实时一直监控 /etc passwd /var/spool/cron/root
3.部署sersync同步服务
a.需要下载安装软件 https://gitbub.com/wsgzao/sersync
b.lrzsz这个软件直接把下载的拉进LINUX中,保存在/server/tools目录中
c.解压软件压缩包 :
1. unzip sersync-master.zip
2. bunzip2 sersync-master.zip.bz2
3. tar zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
4. mv GNU-Linux-x86 /usr/local/sersync
d.编写配置文件:
vim confxml.xml
1. 排除指定数据信息不要进行实时传输同步
6 <filter start="false">
7 <exclude expression="(.).svn"></exclude>
8 <exclude expression="(.).gz"></exclude>
9 <exclude expression="^info/"></exclude>
10 <exclude expression="^static/"></exclude>
11 </filter>
2. 定义inotify程序需要监控的事件
12 <inotify>
13 <delete start="true"/>
14 <createFolder start="true"/>
15 <createFile start="false"/>
16 <closeWrite start="true"/>
17 <moveFrom start="true"/>
18 <moveTo start="true"/>
19 <attrib start="false"/>
20 <modify start="false"/>
21 </inotify>
3. 主要的核心部分,要同步的内容
23 <sersync>
24 <localpath watch="/data"> ----指定监控的目录
25 <remote ip="192.168.3.12" name="ftp"/> ----备份远程地址 name---模块信息
26 ---多个远程地址
27 ---多个远程地址
28 </localpath>
29 <rsync>
30 <commonParams params="-az"/> ---指定RSYNC的命令参数
31 <auth start="false" users="root" passwordfile="/etc/rsync.pas"/> ---指定认证用户和密码文件,false->true
32 <userDefinedPort start="false" port="874"/> false->true , port改成自己的873或其它
33 <timeout start="false" time="100"/> -->传输数据时连接超时时间
34 <ssh start="false"/>
35 </rsync>
e.启动sersync2的服务程序
1.可用export PATH:"$PATH:/usr/local/sersync/sersync2"加入到变量路径中
2.可用sersync2 -h查看参数:
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
参数-n: 指定开启守护线程的数量,默认为10个
*****参数-o:指定配置文件,默认使用confxml.xml文件 可用多个-o跟随多个配置文件,监控多个目录
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
3.启动服务:sersync2 -dro /usr/local/sersync/confxml.xml
4.关闭服务:killall sersync2
5.开机自启动: /etc/rc.local <--sersync2 -dro /usr/local/sersync/confxml.xml
f.实现同步服务概念总结:
01.实现实时同步的原理:
监控目录数据变化 ----- inotify
将数据进行传输 ----- rsync
将监控和传输进行整合 - sersync