a.需要部署好rsync守护进程服务,实现数据传输
b.需要部署好inotify服务,实现目录中数据监控
c.将rsync服务和inotify服务建立联系,将变化的数据进行实时备份传输
服务端配置操作
客户端配置操作
第一个步骤:安装inotify-tools软件
yum -y install inotify-tools
第二个步骤:熟悉命令的使用
/usr/bin/inotifywait ---监控目录数据信息变化
/usr/bin/inotifywatch ---对监控的变化信息进行统计(修改次数、删除次数)
inotifywait命令使用方法:
inotifywait [参数] 监控的目录
-m|--monitor ----实现一直监控目录
-r|--recursive ----进行递归监控
-q|--quiet ----尽量减少信息的输出
--format ----指定输出信息的格式
--timefmt ----指定输出的时间信息格式
-e|--event ----指定监控的事件信息
创建文件监控信息输出:
/backup/ CREATE root.txt --一个文件被创建
/backup/ OPEN root.txt --打开创建的文件
/backup/ ATTRIB root.txt --修改文件的属性信息
/backup/ CLOSE_WRITE,CLOSE root.txt --保存关闭一个文件
删除文件监控信息输出:
/data/DELETE root.txt
修改文件监控信息输出:
/backup/ CREATE root.txt
/backup/ OPEN root.txt
/backup/ MODIFY root.txt
/backup/ CLOSE_WRITE,CLOSE root.txt
sed命令修改文件原理:
/backup/ OPEN 1.txt --打开文件
/backup/ CREATE sedDSF8R2 --创建出一个临时文件(内存)
/backup/ OPEN sedDSF8R2 --临时文件进行打开
/backup/ ACCESS 1.txt --读取源文件内容
/backup/ MODIFY sedDSF8R2 --修改临时文件
/backup/ ATTRIB sedDSF8R2 --临时文件属性变化
/backup/ CLOSE_NOWRITE,CLOSE 1.txt --不编辑直接关闭源文件
/backup/ CLOSE_WRITE,CLOSE sedDSF8R2--写入关闭临时文件
/backup/ MOVED_FROM sedDSF8R2 --将临时文件移除
/backup/ MOVED_TO 1.txt --移入一个新的1.txt源文件
inotify监控命令最终格式:
inotifywait -mrq --timefmt "%F" --format "%T %w %f 事件信息:%e" /data -e 【CREAT】
监控的事件:
create --创建 delete --删除 moved_to --移入 close_write --修改
企业应用:防止系统重要文件被破坏
需要用到inotify进行实时一直监控/etc/passwd,/var/spool/cron/root
第一个历程:需要下载安装软件
GitHub - wsgzao/sersync: rsync+inotify-tools
先创建一个/server/tools目录
rz -y (上传LInux服务器)
第二个历程:解压软件压缩包
tar xf sersync2.5.4_64bit_binary_stable_final.tar.gz
mv GNU-Linux-x86/sersync2 /usr/local/
第三个历程:编写配置文件
vim conf/confxml.xml
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>
说明:排除指定数据信息不要进行实时传输同步
filter=过滤 exclude=排除
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>
说明:定义inotify程序需要监控的事件
24 <localpath watch="/data"> #源服务器同步目录
25 <remote ip="172.16.1.41" name="backup"/> #目标服务器IP地址,和目标服务器rsync同步目录模块名称
26 <!--<remote ip="192.168.8.39" name="tongbu"/>--> #目标服务器ip,每行一个
27 <!--<remote ip="192.168.8.40" name="tongbu"/>--> #目标服务器ip,每行一个
28 </localpath>
29 <rsync>
30 <commonParams params="-az"/>
31 <auth start="true" users="rsync_backup" #目标服务器rsync同步用户名
passwordfile="/etc/rsync.passwd"/> #目标服务器rsync同步用户的密码在源服务器的存放路径
32 <userDefinedPort start="true" port="874"/><!-- port=874 --> #设置rsync远程服务端口号
第四个历程:启动sersync服务程序
chmod a+x sersync
export PATH="$PATH:/usr/local/sersync/bin"
sersync -h(查看命令参数)
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
进行同步测试
参数-o:指定配置文件,默认使用confxml.xml文件
-o /usr/local/sersync/conf/confxml.xml
-o /usr/local/sersync/conf/confxml02.xml
启动sersync实时同步服务命令:
sersync -dro /usr/local/sersync/conf/confxml
根据自己实际部署情况而定,我的启动命令如下:
/usr/local/sersync2 -dro /server/tools/GNU-Linux-x86/confxml.xml
停止sersync进程:
killall sersync
yum -y install psmisc(若没有需安装)
开机自动启动:
/etc/rc.local <--sersync -dro /usr/local/sersync/conf/confxml
1)实现实时同步的原理
监控目录数据变化 --inotify
将数据进行传输 --rsync
将监控和传输进行整合 --sersync
2)实现实时同步部署方法
1.部署rsync守护进程
2.部署inotify软件
3.部署sersync软件