【系统环境:CentOS-6.6-x86_64】
了解inotify
- inotify是一种强大的、细粒度的、异步的文件系统事件监控机制,Linux内核从2.6.13版本起,加入对inotify的支持。通过inotify可以监控文件系统中添加、删除、修改、移动等各种细微的事件,利用这个内核接口,第三方软件可以监控文件系统下文件的各种变化情况,inotify-tools就是这样的一个第三方软件。
- rsync可以实现触发式的文件同步,但是通过crontab守护进程方式进行触发,同步的数据与实际数据会有差异,而inotify可以监控文件系统的各种变化,当文件有任何变动时,会触发rsync同步,这样刚好解决了同步数据的实时性问题。
安装inotify工具inotify-tools
由于inotify的特性需要Linux内核的支持,在安装inotify-tools前需要先确认Linux系统内核是否是2.6.13版本以上,如果Linux内核版本低于2.6.13,就需要重新编译内核加入对inotify的支持,可以用如下方法判断内核是否支持inotify:
可以到notify-tools.sourceforge.net下载相应版本的inotify-tools,然后编译安装。
wget http://cloud.github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz tar zxvf inotify-tools-3.14.tar.gz cd inotify-tools-3.14 ./configure make;make install
安装完inotify-tools后,会生成inotifywait和inotifywatch两个指令。其中,inotifywait用于等待文件或文件集上的一个特定事件,可以监控任何文件和目录设置,并且可以递归地监控整个目录树;inotifywatch用于手机被监控的文件系统统计数据,包括每个inotify事件发生多少次等信息。
企业应用案例:利用rsync+inotify搭建实时同步系统
案例描述
一个CMS内容发布系统,内容发布节点负责将用户发布的数据生