【命令格式】: inotifywait [ options ] file1 [ file2 ] [ file3 ] [ ... ]
【命令原意】: inote file system wait
【命令路径】:
【命令功能】:
等待所监听的文件系统触发操作事件
【执行权限】: root
【命令描述】:
    众所周知,Linux
桌面系统与 MAC 或 Windows
相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如
hotplug、udev 和 inotify 就是这种需求催生的。Hotplug
是一种内核向用户态应用通报关于热插拔设备一些事件发生的机制,桌面系统能够利用它对设备进行有效的管理,udev 动态地维护 /dev
下的设备文件,inotify 是一种文件系统的变化通知机制,如文件增加、删除等事件可以立刻让用户态得知,该机制是著名的桌面搜索引擎项目 beagle
引入的,并在 Gamin 等项目中被应用。

Inotify
是一个内核用于通知用户空间程序文件系统变化的机制,是基于inode级别的文件系统监控技术,是一种强大的、细粒度的、异步的机制,它满足各种各样的文件监控需要,不仅限于安全和性能,内核要求2.6.13以上,inotify能监控非常多的文件系统事件,通过监控这些事件来监控文件是否发生变更,然后通过rsync来更新发生变更的文件,Inotify
可以监视的文件系统事件包括:

【常用选项】:
    -h 或 --help 显示帮助

@<file> Exclude
the specified file from being watched.

--exclude
<pattern>
指定排除(忽略)部分文件或目录,这些文件或目录上不监听任何事件,正则表达式书写(相对路径)
     
FMT: # --exclude 'Runtime' //忽略对Runtime目录的事件监听

--excludei <pattern>
与--exclude相同,区别是此选项正则表达式忽略大小写

-m 或 --monitor
持续保持监听(如果不加此选项,则监听到一次后便退出)

-d 或 --daemon
以守护进程方式后台运行(除了在后台运行外,与-m选项一样)

-r 或 --recursive
递归监听其下所有子目录及文件

--fromfile <file>
Read files to watch from <file> or `-' for stdin.

-o 或 --outfile
<file> 将事件输出到指定文件,而不输出到屏幕
     
FMT: -o /var/log/inotifywait.log

-s 或 --syslog
将错误发送到系统日志,而不是输出到屏幕

-q 或 --quiet
打印较少信息(仅打印事件)

-qq
不打印任何信息(静默方式)

--format <fmt>
设置打印屏幕的格式,常见选项:%T时间;%w触发事件文件所在绝对路径;%f触发事件文件名称;%e触发的事件名称;
     
FMT: # --format '%T %f %e'

--timefmt <fmt>
指定输出时间内容,相当于将时间赋值给%T
      FMT: #
--timefmt '%y-%m-%d %H:%M'

-c 或 --csv
用CSV格式打印事件

-t 或 --timeout
<seconds> 指定一次性监听时间,超时退出监听(值为0表示永不超时,单位:秒),不可与 -m -d
连用
      FMT: # -t 60
//设定监听60秒,60秒内监听到事件立即退出,如果监听不到事件60秒后也退出

-e 或 --event
<event1> [ -e|--event <event2> ... ]
指定要监听的事件(多个事件用逗号分割)
      FMT: # -e
'create,delete,close_write,attrib,moved_to'

【总结提示】:

Exit status: 退出返回状态值
  0 -
An event you asked to watch for was received.

      正常收到监听事件

1 - An event you did not ask to watch for was received (usually
delete_self or unmount), or some error
occurred.
     
意外收到一个未监听的事件(如:文件自删除,umount及其它情况)

2 - The --timeout option
was given and no events occurred in the specified interval of
time.
      当给定了超时选项,设定时间内没有事件产生

Events: 事件
 
access        file or directory
contents were read 文件或目录被(访问)读取r
 
modify        file or directory
contents were written 文件或目录被写入w
 
attrib        file or directory
attributes changed 文件或目录属性变更【理由:chmod更改属性】
 
close_write   file or directory closed, after being opened in
writeable mode 文件或目录被写关闭【理由:文件内容被更改】
  close_nowrite file or
directory closed, after being opened in read-only mode 文件或目录以只读方式打开后关闭

  close         file or
directory closed, regardless of read/write mode
文件或目录被用编辑器(不管是读或写)关闭
 
open          file or
directory opened 文件或目录被用编辑器打开
 
moved_to      file or directory moved to watched
directory 文件或目录被移动进来【理由:mv目录内重命名】
  moved_from   
file or directory moved from watched directory 文件或目录被移动出去
 
move          file or
directory moved to or from watched directory 文件或目录不管是移出或移进
 
create        file or directory created
within watched directory 文件或目录被创建【理由:mkdir创建目录】
 
delete        file or directory deleted
within watched directory 文件或目录被删除【理由:rm删除】
 
delete_self   file or directory was deleted 文件或目录自删除
 
unmount       file system containing file or
directory unmounted 文件系统取消挂载

【参考文档】:

【选项举例】:

★ 监听/wwwroot/web.d目录内所有文件和目录的"增删改"操作

[root@zzx ~]# /usr/local/inotify/bin/inotifywait -mrq -e 'create,delete,close_write,attrib,moved_to' --timefmt '%Y-%m-%d %H:%M' --format '%T %f %e' /wwwroot/web.d/
-- : text.txt CREATE
-- : text.txt CLOSE_WRITE,CLOSE
-- : ttt.t MOVED_TO
-- : bb DELETE

inotifywait命令的更多相关文章

  1. inotifywait命令如何监控文件变化?

    转载自:https://segmentfault.com/a/1190000038351925 文件监控可以配合rsync实现文件自动同步,例如监听某个目录,当文件变化时,使用rsync命令将变化的文 ...

  2. inotifywait命令详解及安装

    https://www.cnblogs.com/pyrene/p/6414724.html     安装 https://www.cnblogs.com/martinzhang/p/4126907.h ...

  3. 利用inotifywait监控主机文件和目录

    利用inotifywait监控主机文件和目录 inotifywait 是一个可以实时监控文件变动的工具,它利用linux内核中的inotify机制实现监控功能. 查看内核版本 [root@Oracle ...

  4. inotifywait实时监控文件目录

    一.inotify简介 inotify 是一种强大的.细粒度的.异步文件系统监控机制,它满足各种各样的文件监控需要,可以监控文件系统的访问属性.读写属性.权限属性.创建删除.移动等操作,也可以监控文件 ...

  5. inotifywait实现文件监控

    应用场景文件监控可以配合rsync实现文件自动同步,例如监听某个目录,当文件变化时,使用rsync命令将变化的文件同步.(可用于代码自动发布) 安装noitify下载地址:http://github. ...

  6. 实战:rsync+inotify实现数据实时同步

    Linux 内核从 2.6.13 版本开始提供了 inotify 通知接口,用来监控文件系统的各种变化情况,如文件存取.删除.移动等.利用这一机制,可以非常方便地实现文件异动告警.增量备份,并针对目录 ...

  7. 开源服务专题之-------rsync数据备份

    RSYNC是Remote Sync 远程同步的简称,与SCP的比较,SCP= 无法备份大量数据,类似windows的复制,而rsync=边复制 ,边统计,边比较,可以备份大量数据.可以镜像保存整个目录 ...

  8. 烂泥:rsync与inotify集成实现数据实时同步更新

    本文由秀依林枫提供友情赞助,首发于烂泥行天下. 上篇文章我们介绍了如何使用rsync同步文件,这篇文章我们再来介绍下,如何把rsync与inotify集成实现数据的实时同步. 要达到这个目的,我们需要 ...

  9. rsync+inotify实现实时同步案例--转

    转自:http://chocolee.blog.51cto.com/8158455/1400596 随着应用系统规模的不断扩大,对数据的安全性和可靠性也提出的更好的要求,rsync在高端业务系统中也逐 ...

随机推荐

  1. 备份触发器:ADDC3

    CREATE OR REPLACE TRIGGER "XMV502"."ADDC3" before insert on bd_cubasdoc for each ...

  2. HDU 1789 Doing Homework again(贪心)

    Doing Homework again 这只是一道简单的贪心,但想不到的话,真的好难,我就想不到,最后还是看的题解 [题目链接]Doing Homework again [题目类型]贪心 & ...

  3. List Arraylist 数组的区别

    数组.List和ArrayList的区别 数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,比如: ]; //赋值 s[]=]=]="c"; //修 ...

  4. File存对象--android 的File存储到SD卡();

    方法1:android File存对象--File存储到SD卡(); 1.保存对象到本地或SD卡需要注意的是,要保存的对象(OAuthV1)一定要实现了Serializable接口.实现了Serial ...

  5. 彻底弄懂响应式设计中的em和rem

    前一阵子在响应式开发中遇到了em和rem的问题,也上网搜过一些文章,篇幅很长,也没有仔细看,今天来总结一下. rem是指:根元素(root element,html)的字体大小, em是指:父元素的字 ...

  6. libZPlay 音频编码解码器库

    libZPlay 音频编码解码器库 http://www.oschina.net/p/libzplay libZPlay 播放音乐并显示 FFT 图形 :http://www.oschina.net/ ...

  7. 四则运算GUI设计2.0

    使用QT设计的界面如下: 程序流程是点击开始出题,会在题目后面的框中显示所出的题目,在输入答案以后点击提交答案会判断输入的答案是否正确. 输入后的界面: 部分代码如下: qtyunsuan.h文件: ...

  8. R&S学习笔记(二)

    1.OSPF:路由条目1万多条.收敛时间1s:ISIS:路由条目可以达2万多条,收敛时间50ms().ISIS在链路层上面,不依赖IP这层,这样给了它很多可能.比如IPv4, IPv6路由的混合承载, ...

  9. Zip文件压缩(加密||非加密||压缩指定目录||压缩目录下的单个文件||根据路径压缩||根据流压缩)

    1.写入Excel,并加密压缩.不保存文件 String dcxh = String.format("%03d", keyValue); String folderFileName ...

  10. 《疯狂Java讲义》(一) ---- 关于学习Java的反思

    "听到Spring很火,就立马买来一本Spring的书来读,最后结果往往是失败,因为这种学习没有积累,没有根基,学习过程中困难重重,每天都被一些相同.类似的问题所困扰,起初热情十足,经常上论 ...