inotify之inotifywait命令详解.doc

上传人:白大夫 文档编号:3253004 上传时间:2019-08-06 格式:DOC 页数:3 大小:17.50KB
返回 下载 相关 举报
inotify之inotifywait命令详解.doc_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《inotify之inotifywait命令详解.doc》由会员分享,可在线阅读,更多相关《inotify之inotifywait命令详解.doc(3页珍藏版)》请在三一文库上搜索。

1、inotify之inotifywait命令详解1.inotify简介inotify 是一个从 2.6.13 内核开始,对 Linux 文件系统进行高效率、细粒度、异步地监控机制, 用于通知用户空间程序的文件系统变化。可利用它对用户空间进行安全、性能、以及其他方面的监控。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。如果内核版本不低于 2.6.13,系统就支持 inotify。 如果存在/usr/include/sys/inotify.h 文件, 表明内核支持 inotify。1rootlocalhost#ls-l/proc/sys/fs/inotify/#列

2、出文件目录,出现下面的内容,说明服务器内核支持inotify2total03-rw-r-r-1rootroot0Oct1305:39max_queued_events4-rw-r-r-1rootroot0Oct1305:39max_user_instances5-rw-r-r-1rootroot0Oct1305:39max_user_watches2.inotify的作用inotify 可以监控文件,也可以监控目录。当监控目录时,它可以同时监控目录及目录中的各子目录及文件的。此外, inotify 使用文件描述符作为接口,因而可以使用通常的文件 I/O 操作 select、 poll 和 ep

3、oll 来监视文件系统的变化。3.inotify实现数据实时同步原理无论是手动执行 rsync 还是把 rsync 客户端发出的数据同步请求命令做成周期性任务计划, 每隔一段时间不管有没有数据变化都发出一次数据同步请求命令, 同步一次数据。 服务端和客户端都有时间差。所以, 使用内核提供的 inotify 机制,当数据发生改变时(删除、修改等)就触发 rsync 客户端发出数据 同步请求。 从而实现数据的实时传输。rsync + inotify 机制实现的两台服务器数据同步如下图如示:4.inotify的安装与使用1rootlocalhost#yuminstall-yinotify-tools

4、2rootlocalhost#inotifywait-mrq-timefmt%d%m%Y%H:%M-format%T%w%f-ecreate/backup#创建对目录/backup的监控31710201700:02/backup/1.txt41710201700:02/backup/2.txt51710201700:02/backup/3.txt61710201700:02/backup/4.txt71710201700:02/backup/5.txt5.inotify之inotifywait命令详解1参数详解: 2-r:递归查询目录 3-q:打印监控时间信息 4-m:始终保持时间监听状态 5

5、-excludei:排除文件或目录时,不区分大小写。 6-timefmt:指定时间输出的格式 7-format:打印使用指定的输出类似格式字符串 8a、%w:显示被监控文件的文件名; 9b、%f:如果发生某事件的对象是目录,则显示被监控目录的名字;默认显示为空串;10c、%T:使用-timefmt选项中自定义的时间格式;11d、%e表示发生的事件12e、%Xe事件以“X”分隔13-e:指定需要监控的事件14access:文件或目录被读取15modify:文件或目录内容被修改16attrib:文件或目录属性被改变17close:文件或目录封闭,无论读/写模式18open:文件或目录被打开19mo

6、ve_to:文件或目录被移动到另外一个目录20move:文件或目录被移动另一个目录或从另一个目录移动到当前目录21create:文件或目录被创建在当前目录22delete:文件或目录被删除23unmount:文件系统被卸载24常用组合:close_write,modify,delete,create,attrib6.编写监控脚本1rootnfsscripts#viminotify.sh 2#!/bin/bash 3/usr/bin/inotifywait-mrq%w%f-eclose_write,modify,delete,create/backup 4|whilereadline 5do 6

7、cd/backup7.修改inotify默认参数(inotify默认内核参数值太小)1查看系统默认参数值 2sysctl-a|grepmax_queued_events 3结果是:fs.inotify.max_queued_events=16384 4sysctl-a|grepmax_user_watches 5结果是:fs.inotify.max_user_watches=8192 6sysctl-a|grepmax_user_instances 7结果是:fs.inotify.max_user_instances=128 8修改参数: 9sysctl-wfs.inotify.max_que

8、ued_events=9999999910sysctl-wfs.inotify.max_user_watches=9999999911sysctl-wfs.inotify.max_user_instances=6553512vim/etc/sysctl.conf#添加以下代码13fs.inotify.max_queued_events=9999999914fs.inotify.max_user_watches=9999999915fs.inotify.max_user_instances=6553516:wq!#保存退出1718参数说明:19max_queued_events:20inotif

9、y队列最大长度,如果值太小,会出现*EventQueueOverflow*错误,导致监控文件不准确21max_user_watches:22设置inotifywait或inotifywatch命令可以监视的文件数量(单进程)23max_user_instances:24每个用户创建inotify实例最大值25【inotify在实际生产环境中,对于50-200KB的文件,inotify的最发并发量为200-300,如果客户端写入速度大于这个量,将会造成短暂的延迟】8.总结11rysnc+inotify实时备份流程:22a.实现从NFS客户端到rsync服务端的rsync的部署33b.实现从NFS客户端对NFS目录文件系统时间的实时监控44c.当监控到NFS目录文件系统事件变化后,触发rsync推送变化的文件最后来一张总结图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1