Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1944118
  • 博文数量: 1000
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 7921
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-20 09:23
个人简介

storage R&D guy.

文章分类

全部博文(1000)

文章存档

2019年(5)

2017年(47)

2016年(38)

2015年(539)

2014年(193)

2013年(178)

分类: 服务器与存储

2015-04-18 08:09:17

Windows系统一直有比较完善的文件系统变化通知机制,并为用户提供了FindFirstChangeNotification等 API来方便监控文件系统事件。Linux kernel从2.6.13版本起引入了inotify文件系统事件通知机制,以改善用户体验,使得用户空间可以非常方便地对文件系统变化事件进行监控。 Inotify 是一个 Linux 内核特性,它监控文件系统事件,并且及时发出相关的事件通知。它监控的文件系统事件包括:
    IN_ACCESS,文件被访问
    IN_MODIFY,文件被 write
    IN_ATTRIB,文件属性被修改
    IN_CLOSE_WRITE,可打开文件被关闭
    IN_CLOSE_NOWRITE,不为写打开文件被关闭
    IN_OPEN,文件被打开
    IN_MOVED_FROM,文件从监控点移出
    IN_MOVED_TO,文件被移入监控点
    IN_CREATE,创建新文件
    IN_DELETE,文件被删除
    IN_DELETE_SELF,监控文件自身被删除
    IN_MOVE_SELF,监控文件自身被移出
    IN_UNMOUNT,被监控文件所在文件系统被卸载

Inotify实际是一种事件驱动机制,它为应用程序监控文件系统事件提供了实时响应事件的机制,而无须通过诸如cron等的轮询机制来获取事件。cron等机制不仅无法做到实时性,而且消耗大量系统资源。相比之下,inotify基于事件驱动,可以做到对事件处理的实时响应,也没有轮询造成的系统资源消耗,是非常自然的事件通知接口,也与自然世界的事件机制相符合。

Inotify从2005年linux kernel 2.6.13引入,经过好几年发展,目前已经处于成熟稳定阶段,可以在实际产品和系统中使用。Inotify相关工具和程序开发接口从参考 http://www.ibm.com/developerworks/cn/linux/l-ubuntu-inotify/index.html 。inotify-tools是一个很好用的工具,可以用它来进行验证和测试,当然也可以用它来开发shell程序。

那么inotyfy机制可以用来做些什么呢?
数据备份、数据容灾、数据复制、CDP、数据同步、文件系统监控等应用都可以利用这一机制,实时对数据变化进行处理。

更多信息请参考linux inotify manual pages.
阅读(876) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~