<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ubuntu,debian,redhat -linuxany.com &#187; inotify</title>
	<atom:link href="http://www.linuxany.com/archives/tag/inotify/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linuxany.com</link>
	<description></description>
	<lastBuildDate>Thu, 26 Jan 2012 08:59:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>使用 inotify 监控文件系统的活动</title>
		<link>http://www.linuxany.com/archives/875.html</link>
		<comments>http://www.linuxany.com/archives/875.html#comments</comments>
		<pubDate>Sat, 17 Oct 2009 12:36:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[inotify]]></category>

		<guid isPermaLink="false">http://www.linuxany.com/?p=875</guid>
		<description><![CDATA[Inotify 是一个 Linux® 特性，它监控文件系统操作，比如读取、写入和创建。Inotify 反应灵敏，用法非常简单，并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中，并发现一组可用来进一步自动化系统管理的命令行工具。 系统管理就像日常生活一样。就像刷牙和吃蔬菜一样，日常的维护能保持机器的良好状态。您必须定期清空废物，比如临时文件或无用的日志文件，以及花时间填写表单、回复电话、下载更新和监控进程等。幸好自动化 shell 脚本、使用 Nagios 等工具进行监控、通过常见的 cron 进行任务调度可以减轻这个负担。 但奇怪的是，这些工具没有一个具有响应性。当然，您可以安排一个频繁运行的 cron 任务来监控条件，但这样繁忙的轮询 — 消耗大量资源并且具有不确定性 — 并不是很理想。例如，如果您必须监控输入数据的几个 Transfer Protocol（FTP）收存箱，您可能要通过 find 命令扫描每个目标目录，列举新的内容。然而，尽管这个操作看起来并没有什么害处，但每个调用都产生一个新的 shell 和 find 命令，这需要许多系统调用来打开目录，然后扫描目录，等等。这会造成过于频繁的或大量的轮询任务（更糟糕的是，繁忙的轮询并不总是很好。想象一下一个文件系统浏览器，比如 Mac OS X 的 Finder，轮询更新时需要的大量资源及其复杂性）。 那么，管理员应该怎么办呢？令人高兴的是，您可以再次求助于可以信赖的计算机。 了解 inotify Inotify 是一个 Linux 内核特性，它监控文件系统，并且及时向专门的应用程序发出相关的事件警告，比如删除、读、写和卸载操作等。您还可以跟踪活动的源头和目标等细节。 使用 inotify 很简单：创建一个文件描述符，附加一个或多个监视器（一个监视器 是一个路径和一组事件），然后使用 read() 方法从描述符获取事件信息。read() 并不会用光整个周期，它在事件发生之前是被阻塞的。 更好的是，因为 inotify 通过传统的文件描述符工作，您可以利用传统的 select() 系统调用来被动地监控监视器和许多其他输入源。两种方法 [...]]]></description>
		<wfw:commentRss>http://www.linuxany.com/archives/875.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用 inotify 监控 Linux 文件系统事件</title>
		<link>http://www.linuxany.com/archives/870.html</link>
		<comments>http://www.linuxany.com/archives/870.html#comments</comments>
		<pubDate>Sat, 17 Oct 2009 12:16:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[C/C++]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[inotify]]></category>

		<guid isPermaLink="false">http://www.linuxany.com/?p=870</guid>
		<description><![CDATA[Inotify 是文件系统事件监控机制，计划包含在即将发布的 Linux 内核中作为 dnotify 的有效替代。dnotify 是较早内核支持的文件监控机制。Inotify一种强大的、细粒度的、异步的机制，它满足各种各样的文件监控需要，不仅限于安全和性能。下面让我们一起学习如何安装 inotify 和如何构建一个示例用户空间应用程序来响应文件系统事件。 文件系统事件监控对于从文件管理器到安全工具的各种程序都是必要的，但是 dnotify（早期内核中的标准）存在一些局限性，这使我们期待出现一种更加完善的机制。抱着这种期待，我们发现了 inotify，一种更加现代化的文件系统事件监控替代品。 为什么使用 inotify？ 使用 inotify 取代 dnotify 的原因有很多。第一个原因是，dnotify 需要您为每个打算监控是否发生改变的目录打开一个文件描述符。当同时监控多个目录时，这会消耗大量的资源，因为有可能达到每个进程的文件描述符限制。 除此之外，文件描述符会锁定目录，不允许卸载（unmount）支持的设备，这在存在可移动介质的环境中会引发问题。在使用 inotify 时，如果正在监控被卸载的文件系统上的文件，那么监控会被自动移除并且您会接收到一个卸载事件。 inotify 的优点是它使用文件描述符作为基本接口，使应用程序开发者使用 select 和 poll 来监控设备。这允许有效的多路 I/O 和与 Glib 的 mainloop 的集成。相反，dnotify 所使用的信号常常使程序员头疼并且感觉不太优雅。 inotify 通过提供一个更优雅的 API 解决了这些问题，该 API 使用最少的文件描述符，并确保更细粒度的监控。与 inotify 的通信是通过设备节点提供的。基于以上原因，对于监控 Linux 2.6 平台上的文件，inotify 是您最明智的选择。 在简单应用程序中使用 inotify 为演示 inotify 的使用，我将展示如何为文件系统事件构造一个监控任意目录（或单个文件）的示例程序。我将站在一个较高的层次上来展示 inotify 使文件系统监控变得多么容易。 [...]]]></description>
		<wfw:commentRss>http://www.linuxany.com/archives/870.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

