Linux学习系列之Inotify+Rsync实现实时数据同步
2016-10-13 21:30
477 查看
Inotify简介
inotify介绍inotify是一种强大的、异步的文件系统监控机制,linux内核从2.6.13起,加入了inotify的支持,通过inotify可以监控文件系统中添加、删除、修改、移动等各种事件
inotify实际是一种事件驱动机制,它为应用程序监控文件系统事件提供了实时相应事件的机制,而无需通过cron等轮询的机制来获取事件.cron不紧无法做到实时性,而且消耗大量系统资源
工具集介绍
inotifywait:
在被监控的文件或目录上等待特定的事件(打开、关闭、删除等)发生,执行后处于阻塞状态,适合在shell脚本中使用
监控目录变化 -->比较简洁的一句话描述这个工具的作用,哈哈
inotifywatch:
收集被监视的文件系统使用度统计数据,指文件系统事件发生的次数同级
inotify优点:
实时数据同步
inotify缺点:
并发如果大于200个文件(10-100K),同步就会有延迟
sersync:
通过配置文件定义,使用起来舒服
真正的守护进程
可以对失败文件定时重传
第三方的HTTP接口
默认多线程同步
inotifwait常用参数详解
-r, --recursive 递归查询目录 -q, --quiet 紧打印监控事件的信息 -m, --monitor 始终保持事件监听状态 --exclude <pattern> 排除文件或目录时,不区分大小写 --timefmt 指定事件输出的格式 -e, --event 通过此参数指定需要监控的事件 Events: access: 文件和目录被读取时 modify: 文件和目录被修改时 attrib: 文件或目录属性被修改时 close: 文件或目录关闭(无论读/写)时 open: 文件或目录被打开时 moved to: 文件或目录被移动至另外一个目录时 create: 文件或目录被创建在当前目录时 delete: 文件或目录被删除时 umount: 文件系统被修改时
Inotify+Rsync实时同步
环境介绍192.168.0.91 NFS-Server共享存储 客户端 192.168.0.94 备份服务器(rsync daemon服务器) 服务端 #客户端如果发生文件操作之后,立即出发rsync命令向服务端同步(推送)数据
Rsync daemon服务器(服务端)
配置rsync daemon省略,详情请看上一篇博客配置
NFS-Server(客户端)
安装inotify tar -zxvf inotify-tools-3.14.tar.gz cd inotify-tools-3.14 ./configre --prefix=/usr/local/inotify-tools-3.14 make && make install ln -s /usr/local/inotify-tools-3.14 /usr/local/inotify 创建密码文件 vim /etc/web.password 123.com 编写实时同步脚本 vim /usr/local/inotify/inotify+rsync.sh #!/bin/bash inotify=/usr/local/inotify-tools/bin/inotifywait $inotify -mrq --format '%w%f' -e create,close_write,delete /data |while read file do cd /root && rsync -az /data/ --delete apache@192.168.0.94::web --password-file=/etc/web.password done sh -x /usr/local/inotify-tools/inotify+rsync.sh & 测试 在/data/目录下创建、删除、修改文件时,热备服务器会不会跟随变化
相关文章推荐
- Rsync + inotify 实现数据的实时同步
- inotify + rsync实现实时数据同步
- rsync + lnotify 实现数据的实时同步更新
- rsync + inotify 实现主机间数据实时同步的原理
- sersync:基于 rsync + inotify 实现数据实时同步
- rsync + inotify 用来实现数据实时同步
- sersync:基于 rsync + inotify 实现数据实时同步
- sersync:基于 rsync + inotify 实现数据实时同步
- rsync + inotify 实现数据实时同步
- inotify + rsync实现web镜像实时同步
- inotify + rsync实现linux文件实时同步,使用触发同步机制
- Linux rsync+crontab实现数据实时同步
- rsync+inotify实现数据实时同步
- Inotify+Rsync实现linux文件实时同步
- rsync+inotify实现服务之间的数据实时同步&&手动执行的例子
- rsync+inotifywait实现数据实时同步(下篇:编写脚本)
- CentOS 6.3 Rsync服务端与Debian 6.0.5 Rsync客户端实现数据同步+rsync+Inotify实现数据的实时同步更新
- 安装布署rsync+Inotify实现数据的实时同步更新
- rsync+inotify实现数据实时同步
- inotify + rsync 实现 linux 文件实时同步