设为首页 收藏本站
查看: 637|回复: 1

[经验分享] 配置rsync+inotify实现实时同步备份

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-1-10 09:24:21 | 显示全部楼层 |阅读模式
实战:配置rsync+inotify实现实时同步
Linux内核从2.6.13版本开始提供了inotify通知接口,用来监控文件系统的各种变化情况,如文件存取、删除、移动等。利用这一机制,可以非常方便地实现文件异动告警、增量备份,并针对目录或文件的变化及时作出响应。
使用rsync工具与inotify机制相结合,可以实现触发式备份(实时同步),只要原始位置的文档发生变化,则立即启动增量备份操作,否则处于静态等侍状态,这样一来,就避免了按固定周期备份进存在的延迟性、周期过密等问题。
inotify-tools-3.13.tar
下载地址:http://sourceforge.net/projects/inotify-tools/


扩展:
常见的开源软件下载网址:
SourceForge.net,又称SF.net,是开源软件开发者进行开发管理的集中式场所。
SourceForge 是全球最大开源软件开发平台和仓库,网站建立的宗旨,就是为开源软件提供一个存储、协作和发布的平台。SourceForge 上拥有大量非常优秀的开源软件,事实上,这些软件完全可以代替一些商业软件。
实战4:把xuegod63.cn服务器上的/var/www/html目录时实同步到xuegod64.cn主机上的/web-back目录中。
inotify-tools服务端:xuegod63.cn IP:192.168.1.63
客户端:xuegod64.cnIP:192.168.1.64
查看是否支持inotify,从kernel 2.6.13开始正式并入内核。
[iyunv@xuegod63 ~]#uname -r
2.6.32-220.el6.x86_64
[iyunv@xuegod63 ~]#ll /proc/sys/fs/inotify/
root@xuegod63 ~]#ll /proc/sys/fs/inotify/
total 0
-rw-r--r-- 1 rootroot 0 Apr 10 09:09 max_queued_events
-rw-r--r-- 1 rootroot 0 Apr 10 09:09 max_user_instances
-rw-r--r-- 1 rootroot 0 Apr 10 09:09 max_user_watches
注:
在linux内核中,默认的inotify机制提供了三个调控参数:
max_queued_events#表示监控事件队列
max_user_instances#表示最多监控实例数
max_user_watches #表示每个实例最多监控文件数
查看具体参数值:
[iyunv@xuegod63~]# cat /proc/sys/fs/inotify/max_queued_events

16384
[iyunv@xuegod63 ~]#cat /proc/sys/fs/inotify/max_user_instances
128
[iyunv@xuegod63 ~]#cat /proc/sys/fs/inotify/max_user_watches
8192
注:当要监控的目录、文件数量较多或者变化较频繁时,要加大这三个参数的值。
例如:可直接修改/etc/sysctl.conf配置文件,将管理队列设为32768,实例数设为1024,监控数设为9000000(建议大于监控目标的总文件数)。
[iyunv@xuegod63~]#vim /etc/sysctl.conf#以文件最后,添加以下内容
fs.inotify.max_queued_events= 32768
fs.inotify.max_user_instances= 1024
fs.inotify.max_user_watches= 90000000
[iyunv@xuegod63 ~]#sysctl -p#使修改后的sysctl.conf文件生效
查看是否修改成功:
[iyunv@xuegod63~]# cat  /proc/sys/fs/inotify/max_user_watches
90000000
安装inotify-tools-3.13.tar:
安装inotify-tools后,将拥有inotifywait、inotifywatch辅助工具程序,从而来监控、汇总文件系统改动情况。
[iyunv@xuegod63 ~]#tar -zxvf inotify-tools-3.13.tar.gz
[iyunv@xuegod63 ~]#cd inotify-tools-3.13
[root@xuegod63inotify-tools-3.13]# make

测试:
使用inotifywait命令监控网站目录/var/www/html发生的变化。然后在另一个终端向/var/www/html目录下添加文件、移动文件,查看屏幕输出结果。
[iyunv@xuegod63 ~]#inotifywait -h
常用参数:
-e用来指定要监控哪些事件。
这些事件包括:create创建,move移动,delete删除,modify修改文件内容,attrib属性更改。
-m表示持续监控
-r表示递归整个目录
-q 表示简化输出信息。
[iyunv@xuegod63 ~]#inotifywait -mrq -e create,move,delete,modify /var/www/html/
在另一个终端登录,在/var/www/html目录进行相关的操作,然后,回到原来的终端查看监控变化情况。
[iyunv@xuegod63 ~]#echo aaa > /var/www/html/a.html
[iyunv@xuegod63 ~]#mkdir /var/www/html/test
[iyunv@xuegod63 ~]#cp /etc/passwd /var/www/html/test/
[iyunv@xuegod63 ~]#rm -rf /var/www/html/test/passwd
查看变化:
[iyunv@xuegod63 ~]#inotifywait -mrq -e create,move,delete,modify /var/www/html/
/var/www/html/CREATEa.html
/var/www/html/MODIFY a.html
/var/www/html/CREATE,ISDIR test
/var/www/html/test/CREATE passwd
/var/www/html/test/MODIFY passwd

使用inotifywait输出的监控结果中,每行记录中依次包括目录、事件、文件。据此可以识别变动情况。
编写触发式同步脚本:
第一步,同步时不需要输入密码:
xuegod63发生变化后,直接将发生变化的数据同步到xuegod64,同步时不需要输入密码
[iyunv@xuegod63 ~]#ssh-keygen
[iyunv@xuegod63 ~]#ssh-copy-id root@192.168.1.64
[iyunv@xuegod63 ~]#ssh 192.168.1.64
Last login: WedNov 12 17:51:35 2014

编写一个脚本
[iyunv@xuegod63 ~]#cat a.sh
#!/bin/sh
SRC=/var/www/html
DST=root@192.168.1.64:/web-back
inotifywait -mrq-e modify,delete,create,attrib ${SRC} | while read D E F  
do
/usr/bin/rsync-ahqzt --delete $SRC $DST
done
[iyunv@xuegod63 ~]#cp /root/a.sh /opt/inotify_rsync.sh
[iyunv@xuegod63~]# echo '/opt/inotify_rsync.sh &' >> /etc/rc.local

wKioL1hzKGfRg6ioAADzXhq5BF4173.jpg


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-326357-1-1.html 上篇帖子: Rsync错误总结 下篇帖子: CentOS7安装EPEL的两种方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表