实时同步服务的原理:
inotify监控服务
Linux内核从2.6.13起,加入了"inotify"支持,通过"inotify"可以监控文件系统中添加、删除、修改、移动等各种事件。
使用"inotify"监控服务,需要下载"inotify-tools"软件包。
"inotify"监控服务的参数即事件
通过"rpm -ql"命令查看"inotify"软件包的文件,可以看出只有两个命令文件:
- /usr/bin/inotifywait ---- 监控目录数据信息变化
- /usr/bin/inotifywatch ----对监控的变化信息进行统计
"inotifywait"命令的使用方法:
- "inotifywait"命令参数信息
- "inotifywait"命令事件信息
"inotifywait"命令监控文件的详细过程
"inotify"监控服务更多用在监控一些密码文件等重要文件,防止重要文件被破坏;
因为"sersync"服务已将"inotify"服务和"rsync"服务整合好了,故在这里就只分享一下如何使用"sersync"服务部署实时同步服务。
使用"sersync"服务时,在客户机里先下载好inotify服务和rsyncf服务。
- 第一步:下在sersync安装包,这个软件包无法使用"yum"直接安装,需要到“Github”中下载:https://github.com/wsgzao/sersyn
下载完成之后,上传到Linux主机的一个目录中
其实压缩包里的文件我们只需要使用"sersync2.5.4_64bit_binary_stable_final.tar.gz"这个压缩包里的文件,因为"rsync"和"inotify"我们都可以通过"yum"安装。
-
解压文件
可以将“sersync2”命令文件移入“/usr/local/bin”目录下,系统就会通过PATH变量解析,这样在命令行直接输出“sersync2”就可以和“cd”这种命令一样使用了。
-
修改配置文件
配置文件我做了一些注释,大家可以参考一下:
初次学习的话,只要把我标红星的行配置一下即可,或者可以参考下面这张图:
-
修改好配置文件后,配置文件中需要监视的“目录”、免交互的密码文件都要创建好,同时和目的服务器rsync服务的端口要设置一致;
密码文件的权限要设置为“600”,否则会一致报错:密码文件容易其它用户获取
同时也要注意本主机的密码文件和目的服务器rsync服务的密码文件的一些差别。 -
启动sersync服务
sersync服务没有“systemctl start xxx”方式的重启,直接执行命令就是重启sersync服务
执行命令后,到目的服务器中的模块目录,就可以查看到同步的信息了。
tips:
1.若是想让实时同步服务开机自启动,可将“sersync2 -dro /server/tools/sersync/confxml.xml”命令写入“/etc/rc.local”文件,这样就是可以实现开机自动启动服务
2.若是想监控多个目录,可以在sersync配置文件中进行配置,但要给配置文件不同的名称,这样执行命令时,执行不同的配置文件即可监控不同的目录
3.如想停止实时同步服务,可通过“killall sersync2”命令来停止,“killall”命令需要通过“yum”安装“psmisc”软件包才能使用。
4.若是想卸载软件包,“rpm -e xxx --nodeps”,删除安装包时,取消依赖