在 Linux 内核中对 inotify 进行最后集成之前,我要感谢 IBM 公司 Eli Dow,他写了本文较早的版本。特别要提出的是,在 下载 部分所提供的示例代码,大部分还是基于 Eli 最初的样例代码。

inotify 介绍

从文件管理器到安全工具,文件系统监控对于的许多程序来说都是必不可少的。从 Linux 2.6.13 内核开始,Linux 就推出了 inotify,允许监控程序打开一个独立文件描述符,并针对事件集监控一个或者多个文件,例如打开、关闭、移动/重命名、删除、创建或者改变属性。在后期的内核中有了很多增强,因此在依赖这些特性之前,请先检查您的内核版本。

在本文中,您将会学习如何在简单的监控应用程序中使用 inotify 功能。下载样例代码,在您的系统上编译,进一步探索。

本日志由 flyinweb 于 2011-09-05 09:33:47 发表到 Linux 中,目前已经被浏览 638 次,评论 0 次;

作者添加了以下标签: inotifyfile system event

首页只显示了部分日志内容,要查看日志的全部内容请阅读全文

对于Inotify的使用,IBM有一篇文章介绍很详细,不需要我赘述,链接如下:

http://www.ibm.com/developerworks/cn/linux/l-inotifynew/

大家往往使用inotify-tool比较熟悉,对于其监控文件系统的一些特性,却很少有人总结,有些人用开源的 Inotify脚本程序进行rsync同步,但我希望还是要对文件事件进行过滤,否则会做大量的重复操作和冗余操作,主要原因是,在我们队文件进行编辑操 作的时候会产生大量的冗余事件,这些事件有些是临时文件的产生,有些是对监控文件的冗余操作。详细见下面的测试。

本日志由 flyinweb 于 2011-05-07 09:21:42 发表到 技术文摘 中,目前已经被浏览 1389 次,评论 0 次;

作者添加了以下标签: inotifyrsync

首页只显示了部分日志内容,要查看日志的全部内容请阅读全文

一、 引言

众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发生的机制,桌面系统能够利用它对设备进行有效的管理,udev 动态地维护 /dev 下的设备文件,inotify 是一种文件系统的变化通知机制,如文件增加、删除等事件可以立刻让用户态得知,该机制是著名的桌面搜索引擎项目 beagle 引入的,并在 Gamin 等项目中被应用。

本日志由 flyinweb 于 2011-05-07 09:15:06 发表到 技术文摘 中,目前已经被浏览 843 次,评论 0 次;

作者添加了以下标签: inotify

首页只显示了部分日志内容,要查看日志的全部内容请阅读全文

Sersync服务器同步程序 项目简介与设计框架

http://code.google.com/p/sersync/

项目简介:

本项目利用inotify与rsync对服务器进行实时同步,其中inotify用于监控文件系统事件,rsync是目前广泛使用的同步算法,其优点是只对文件不同的部分进行操作,所以其优势大大超过使用挂接文件系统的方式进行镜像同步。
目前使用的比较多的同步程序版本是inotify-tools,另外一个是google开源项目Openduckbill(依赖于inotify- tools),这两个都是基于脚本语言编写的,其设计思路同样是采用inotify与rsync命令。 相比较上面两个项目,本项目优点是:
1.sersync是使用c++编写,而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤(我稍后会提到),所以在结合rsync同步的时候,节省了运行时耗和网络资源。因此更快。
2.相比较上面两个项目,sersync配置起来很简单:在http://code.google.com/p/sersync/downloads /list 处下载源码(分为32版本,与64位版本),其中bin目录下已经有我编译好的2进制文件,配合bin目录下的xml文件直接使用即可。
3.另外本项目相比较其他脚本开源项目,使用多线程进行同步,尤其在同步较大文件时,能够保证多个服务器实时保持同步状态。
4.本项目自带出错处理机制,通过失败队列对出错的文件重新出错,如果仍旧失败,则每10个小时对同步失败的文件重新同步。
5.本项目自带crontab功能,只需在xml配置文件中开启,即可按您的要求,隔一段时间整体同步一次。
6.本项目自带socket与http协议扩展,满足您二次开发的需要。

本日志由 flyinweb 于 2011-05-07 09:00:37 发表到 技术文摘 中,目前已经被浏览 1060 次,评论 0 次;

作者添加了以下标签: Sersyncrsyncinotify

首页只显示了部分日志内容,要查看日志的全部内容请阅读全文

一般我们把rsync放在crontab里进行定时文件同步,同步的延时有可能会比我们想象的长。这里你可以使用inotify来对文件进行监控,实现触发式同步。

本日志由 flyinweb 于 2009-12-25 10:05:57 发表到 Linux 中,目前已经被浏览 7828 次,评论 1 次;

作者添加了以下标签: inotifyrsync文件同步

首页只显示了部分日志内容,要查看日志的全部内容请阅读全文