快速业务通道

linux inotify rsync ssh数据时时同步

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-10

引用:

Inotify 是文件系统事件监控机制,计划包含在即将发布的 Linux 内核中作为 dnotify 的有效替代.dnotify 是较早内核支持的文件监控机制.Inotify一种强大的、细粒度的、异步的机制,它满足各种各样的文件监控需要,不仅限于安全和性能.下面让我们一起学习如何安装 inotify 和如何构建一个示例用户空间应用程序来响应文件系统事件.

文件系统事件监控对于从文件管理器到安全工具的各种程序都是必要的,但是 dnotify(早期内核中的标准)存在一些局限性,这使我们期待出现一种更加完善的机制.抱着这种期待,我们发现了 inotify,一种更加现代化的文件系统事件监控替代品.

为什么使用 inotify?

使用 inotify 取代 dnotify 的原因有很多.第一个原因是,dnotify 需要您为每个打算监控是否发生改变的目录打开一个文件描述符.当同时监控多个目录时,这会消耗大量的资源,有可能达到每个进程的文件描述符限制.

除此之外,文件描述符会锁定目录,不允许卸载(unmount)支持的设备,这在存在可移动介质的环境中会引发问题.在使用 inotify 时,如果正在监控被卸载的文件系统上的文件,那么监控会被自动移除并且您会接收到一个卸载事件.

dnotify 不如 inotify 的第二个原因是 dnotify 有点复杂.注意,使用 dnotify 基础设施的简单文件系统监控粒度只停留于目录级别.为了使用 dnotify 进行更细粒度的监控,应用程序编程人员为每个受监控的目录保留一个 stat 结构的缓存.该用户空间的 stat 结构缓存需要用来明确确定当接收到通知信号时目录发生了什么变化.当获得通知信号时,生成 stat 结构列表并与最新的状态相比较.显而易见,这种技术是不理想的.

inotify 的另一个优点是它使用文件描述符作为基本接口,使应用程序开发者使用 select 和 poll 来监控设备.这允许有效的多路 I/O 和与 Glib 的 mainloop 的集成.相反,dnotify 所使用的信号常常使程序员头疼并且感觉不太优雅.

inotify 通过提供一个更优雅的 API 解决了这些问题,该 API 使用最少的文件描述符,并确保更细粒度的监控.与 inotify 的通信是通过设备节点提供的.基于以上原因,对于监控 Linux 2.6 平台上的文件,inotify 是您最明智的选择.

Empire CMS,phome.net

linux/l-inotify.html#N10081">http://www-128.ibm.com/developerworks/cn/linux/l-inotify.html#N10081

正文:
sotfware: inotify-tools-3.13.tar.gz
OS: ubuntu server 8.10
server1: 192.168.6.2
server2: 192.168.6.3

需求 server1 目录 /home/ludy/rsync 时时同步 server2 /home/ludy
安装步骤:
1.确认你的内核支持inotify,如果不支持对内核打补丁,一般情况内核在 2.6.3以上的都支持的.你可以确认下运行

ludy@server1:~$ls -l /proc/sys/fs/inotify/
总用量 0
-rw-r--r-- 1 ludy ludy 0 2008-12-16 14:40 max_queued_events
-rw-r--r-- 1 ludy ludy 0 2008-12-16 14:40 max_user_instances
-rw-r--r-- 1 root root 0 2008-12-16 09:07 max_user_watches
如果没有的话,呵呵安装inotify~

2.安装软件 inotify-tools-3.13.tar.gz
ludy@server1:~$ tar zxvf inotify-tools-3.13.tar.gz

ludy@server1:~$ cd inotify-tools-3.13

ludy@server1:~$ ./configure --prefix=/usr/local/inotify
ludy@server1:~$ make
ludy@server1:~$ make install

2.生成SSH KEY 让 server1 ssh访问 server2不需要密码~
ludy@server1:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ludy/.ssh/id_rsa): //输入回车
Enter passphrase (empty for no

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号