CentOS   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了centos 7配置inotify+rsync实时同步大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Linux内核提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取、删除、移动、修改等。利用这个机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。 将inotify机制和rsync工具相结合,可以实现触发式备份(实时同步)——只要原始位置的文档发生变化,则立即启动增量备份操作,否则处于静默状态,这样,避免了周期性备份时存在的延迟性、周期过密等问
Linux内核提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取、删除、移动、修改等。利用这个机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。

将inotify机制和rsync工具相结合,可以实现触发式备份(实时同步)——只要原始位置的文档发生变化,则立即启动增量备份操作,否则处于静状态,这样,避免了周期性备份时存在的延迟性、周期过密等问题。

@H_607_21@在Linux内核中,认的inotify机制提供了三个调控参数: @H_607_21@[[email protected] myweb]# cat /proc/sys/fs/inotify/max_queued_events 16384 #监控事件队列数 [[email protected] myweb]# cat /proc/sys/fs/inotify/max_user_instances 128 #最多监控实例数 [[email protected] myweb]# cat /proc/sys/fs/inotify/max_user_watches 8192 #每个实例最多监控文件

当要监控的目录、文件数量较多或者变化比较频繁时,建议通过修改 /etc/sysctl.conf ”加大这三个参数(标准是1024的倍数):

@H_607_21@[[email protected] myweb]# vim /etc/sysctl.conf .............................. fs.inotify.max_queued_events = 32768 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576 [[email protected] myweb]# sysctl -p #更新并查看该参数是否生效 fs.inotify.max_queued_events = 32768 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576

接下来的操作接着上一篇配置rsync服务器的环境,以及配置,上一篇博文链接https://blog.51cto.com/14154700/2404358

现在所有的操作是基于server B(192.168.1.2)这台服务器的:

1、安装inotify-tools:@H_450_36@获取源码包:

链接https://pan.baidu.com/s/1ts6zSx3W5ybZL58tkS8enA @H_450_36@提取码:trfg

解包并安装:

@H_607_21@[[email protected] media]# tar zxf inotify-tools-3.14.tar.gz -C /usr/src [[email protected] media]# cd /usr/src/inotify-tools-3.14/ [[email protected] inotify-tools-3.14]# ./configure && make && make install

2、安装后即可使用,现在以监控server B上的/var/www/html目录:

@H_607_21@[[email protected] /]# inotifywait -mrq -e modify,create,move,attrib,delete /var/www/html

该命令的具体选项解释如下:

-e:指定要监控哪些事件;@H_450_36@-m:表示持续监控;@H_450_36@-r:表示递归整个目录;@H_450_36@-q:简化输出信息;@H_450_36@modify:修改;@H_450_36@create:创建;@H_450_36@move:移动;@H_450_36@delete:删除;@H_450_36@attrib:属性更改;@H_450_36@

现在切换一个终端,在监控的目录下新建一个1.html文件,则该终端的监控命令下就会提示相关信息,提示如下::

@H_607_21@[[email protected] /]# inotifywait -mrq -e modify,delete /var/www/html /var/www/html/ CREATE 1.html /var/www/html/ ATTRIb 1.html

3、现在可以编写一个本来实现实时同步:

@H_607_21@[[email protected] /]# vim /opt/inotify_rsync.sh #!/bin/bash inotify_cmd="inotifywait -mrq -e modify,delete /var/www/html/" rsync_cmd="rsync -azH --delete --password-file=/etc/server.pass /var/www/html/ [email protected]::wwwroot" $inotify_cmd | while read A B C do $rsync_cmd done [[email protected] /]# chmod +x /opt/inotify_rsync.sh [[email protected] /]# echo ‘/opt/inotify_rsync.sh‘ >> /etc/rc.local :设置开机自动运行该脚本

验证该脚本是否生效的过程如下:

  1. 在本机 server B上运行/opt/inotify_rsync.sh脚本程序。
  2. 切换到本机的/var/www/html/目录,执行增加删除修改文件等操作。
  3. 查看server A服务器中/var/www/html/目录下的变化情况。

注意事项:

  • 记得测试下脚本是否有编写错误,可手动执行下脚本,测试是否生效,若有报错信息,可将脚本里的命令复制出来,执行一下,看命令是否有错误,并且注意两台服务器的目录相关权限问题,如是否可读可写等。
  • rsync服务器上的配置项须设置为 read only = no。

大佬总结

以上是大佬教程为你收集整理的centos 7配置inotify+rsync实时同步全部内容,希望文章能够帮你解决centos 7配置inotify+rsync实时同步所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。