Inotify Rsync实现linux文件实时同步Linux认证考试
文章作者 100test 发表时间 2010:03:05 21:35:53
来源 100Test.Com百考试题网
    
	  公司一套系统的同步使用的donotify,不能实现子目录的实时同步,通过查资料,发现inotify可以实现子目录的实时同步,以下为笔记。 
  一、介绍
  Inotify 是文件系统事件监控机制,作为 dnotify 的有效替代。dnotify 是较早内核支持的文件监控机制。Inotify 是一种强大的、细粒度的、异步的机制,它满足各种各样的文件监控需要,不仅限于安全和性能。
  inotify 可以监视的文件系统事件包括:
  IN_ACCESS,即文件被访问
  IN_MODIFY,文件被 write
  IN_ATTRIB,文件属性被修改,如 chmod、chown、touch 等
  IN_CLOSE_WRITE,可写文件被 close
  IN_CLOSE_NOWRITE,不可写文件被 close
  IN_OPEN,文件被 open
  IN_MOVED_FROM,文件被移走,如 mv
  IN_MOVED_TO,文件被移来,如 mv、cp
  IN_CREATE,创建新文件
  IN_DELETE,文件被删除,如 rm
  IN_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己
  IN_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己
  IN_UNMOUNT,宿主文件系统被 umount
  IN_CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)
  IN_MOVE,文件被移动,等同于(IN_MOVED_FROM | IN_MOVED_TO)
  注:上面所说的文件也包括目录。
  二、为能在shell下使用inotify特性,需要安装inotify-tools
  1、inotify-tools:The general purpose of this package is to allow inotify s features to be used from within shell scripts.
  下载地址:http://inotify-tools.sourceforge.net/
  编译安装
  ./configure
  make
  make install
  完成后,注意查看manpage,man inotify 、 man inotifywait
  1)inotifywait 仅执行阻塞,等待 inotify 事件。您可以监控任何一组文件和目录,或监控整个目录树(目录、子目录、子目录的子目录等等)。在 shell 脚本中使用 inotifywait。
  2)inotifywatch 收集关于被监视的文件系统的统计数据,包括每个 inotify 事件发生多少次。