实时同步服务
- 实现实时同步数据的原理
- 实时同步数据的方法
- 部署好rsync守护进程服务
- 部署好inotify监控服务
- 部署好sersync实时同步服务
- 实现实时同步数据的验证
实时同步服务原理/概念
- 需要部署好rsync守护进程服务,实现数据传输
- 需要部署好inotify服务,实现目录中数据变化监控
- 将rsync服务和inotify服务建立联系,将变化的数据进行实时备份传输
实时同步服务部署
-
部署好rsync守护进程
- 服务端配置操作
- 客户端配置操作
-
部署inotify监控服务
-
安装软件
yum install -y inotify-tools
-
熟悉命令的使用
-
监控目录数据信息变化
/usr/bin/inotifywait #使用方法 inotifywait [参数] 监控的目录 #参数: -m:实现一直监控目录的变化 -r:进行递归监控 -q:尽量减少信息的输出 --format:指定输出信息的格式 --timefmt:指定输出的时间信息格式 -e:指定监控的事件信息(增删改移入) inotifywait -mrq /data
-
对监控的变化信息进行统计
/usr/bin/inotifywatch
-
-
-
部署sersync服务
文件监控信息输出
- 创建文件监控信息输出
- 一个文件被创建
- 打开创建的文件
- 修改文件的属性信息
- 关闭文件
- 删除文件监控信息输出
- /data/ delete user13
- 修改文件监控信息输出
- /data/ create user10
- /data/ open user10
- /data/ modify user10
- /data/ close_write,close user10
sed命令修改文件原理
- 打开文件
- 创建一个临时文件(放在内存中)
- 临时文件进行打开
- 读取源文件内容
- 修改临时文件
- 临时文件属性变化
- 不编辑直接关闭源文件
- 写入关闭临时文件
- 将临时文件移除
- 移入一个新的user10源文件
指定监控那些事件
inotifywait -mrq /data -e CREATE
修改输出信息
inotifywait -mrq --timefmt "%F" --format "%T %w %f 事件信息:%e" /data -e CREATE
2023-01-10 /data/data01 oldboy05.txt 时间信息:/data -e CREATE
需要监控的事件
- create:创建
- delete:删除
- moved_to:移入
- close_write:修改
企业应用:防止系统重要文件被破坏
-
需要用到inotify进行实时一直监控
/etc/passwd /var/spool/cron/root
如果yum安装没有inotify-tools
-
没有对yum进行优化
cd /etc/yum.repos.d/ ls 目录中没有epel.repo这个文件
部署sersync同步服务
-
下载链接
https://github.com/wsgzao/sersync
-
上传linux服务器
rz -y
-
解压软件压缩包
unzip
-
移动解压后的目录
mv sersync/ /usr/local
-
编写配置文件
vim conf/confxml.xml 6~11行,默认关闭,进行排除,哪些文件不进行备份 <filter start="false”> <exclude expression="(.*)\.svn"></exclude> <exclude expression="(.*)\.gz12</exclude> <exelude expression="^info/*"> </exclude> <exclude expression="^static/*</exclude> </f11ter> 12~21行,定义inotify程序需要监控的事件 24~32行 watch:指定监控的目录 后面有没有斜线都行,最终默认是有斜线的 ip:指定备份服务器地址 name:指定备份服务器模块信息 params:指定rsync推送命令参数 默认az,并且附带--delete users:指定rsync认证用户 passwordfile:指定rssync认证密码文件 记住前面的false要改成true
-
启动sersync服务
-
添加权限
cd /usr/local/sersync/bin chmod a+x sersync a+x:所有用户都添加上x权限
-
查看参数
sersync -h 参数-d:启用守护进程服务 -r:监控前,将监控目录与远程主机用rsync命令推送一遍 进行同步测试 -o:指定配置文件,默认使用confxml.xml
-
启动服务
sersync -dro /usr/local/sersync/conf/confxml.xml
-
停止服务
yum install -y psmisc killall sersync
-
实时同步服务概念总结
- 实现实时同步服务的原理
- 监控目录数据变化:inotify
- 将数据进行传输:rsync
- 将监控和传输进行整合:sersync
- 实现实时同步部署方法
- 部署rsync守护进程
- 部署inotify软件
- 部署sersync软件