inotifywait命令

【命令格式】: 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> 指定输出时间内容,相当于将时间赋值给%TFMT: # --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 文件系统取消挂载

ubuntu下inotifywait实现目录、文件监控【包含子目录】相关推荐

  1. ubuntu下无法在目录下创建文件夹,权限不足解决办法

    ubuntu下无法在目录下创建文件夹,权限不足解决办法 Ubuntu linux系统下 su:出现: authentication failure的解决办法 ubuntu下 sudo passwd r ...

  2. Ubuntu下配置samba实现文件夹共享

    Ubuntu下配置samba实现文件夹共享 一.samba的安装: sudo apt-get intall samba sudo apt-get install smbfs 二.创建共享目录: mkd ...

  3. linux 分区 var,Ubuntu下移动/var目录到单独分区后出现的一些问题

    Ubuntu下移动/var目录到单独分区后出现的一些问题 发布时间:2008-04-21 01:17:50来源:红联作者:yibin 如mount: special device /var/run d ...

  4. c盘java文件误删_java获取C盘下的隐藏目录文件名称

    题记 --  执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天. 网易云课堂 在Java中, File类用来将文件或者文件夹封装成对象,方便对文件与文件夹的属性信息进行操作. Fil ...

  5. java获取C盘下的隐藏目录文件名称

    题记   --  执剑天涯,从你的点滴积累开始,所及之处,必精益求精,即是折腾每一天.    网易云课堂 Flutter开发中的点滴积累 在Java中, File类用来将文件或者文件夹封装成对象,方便 ...

  6. ubuntu下播放h264,h265文件

    ubuntu下播放h264,h265文件 vlc可以播放h264,h265文件, 并且既可以在win下,可以在ubuntu下 安装vlc 在ubuntu软件中心,搜索vlc,既可以看到vlc medi ...

  7. php获取指定目录下所有文件列表,PHP 获取指定目录下所有文件(包含子目录)...

    set DestPath=.for /f "delims=" %%i in ('dir /ad /b ' ) do (copy %DestPath%\%%i\*.txt %Dest ...

  8. 通过Python实现某个目录下所有文件(包含子目录中的文件)的列出

    方法一 # 修改工作目录 import os os.chdir(r'C:\Users\Hider\Desktop')# 定义函数 def list_all_files(rootdir):import ...

  9. Ubuntu下破暴力解压缩文件zip的密码

    用Ubuntu下的frackzip工具破解zip的密码,注意此处只能破解zip的密码,对于rar.7z等类型的压缩文件暂时不支持破解. 步骤如下: 1.右键Ubuntu桌面,打开终端 2.在终端中输入 ...

最新文章

  1. 鸿蒙可以和安卓抗衡吗,鸿蒙手机系统正式登场!继承EMUI的衣钵,能抗衡安卓系统吗?...
  2. 【PP】重复生产参数文件说明
  3. JS表情替换代码,这里使用字符代替图片路径
  4. 【遥感物候】1983-2012年时间序列中国地区GIMMS 3g NDVI下载(已进行旋转、格式转换、投影变换和裁剪)
  5. MIP 移动网页加速器视频教程全新发布
  6. JWT、JWE、JWS 、JWK 都是什么鬼?还傻傻分不清?
  7. sql 获取当前系统时间
  8. JS实现弹窗效果,超简单哦
  9. 如果你想专升本那就一定要看的专升本语文_文学常识完整版(四)
  10. [BZOJ1488][HNOI2009]图的同构(dfs+置换群+数论+组合数学)
  11. 不用花钱,让你百度网盘满速下载的神器!简单实用教程
  12. 对于单峰函数(有唯一极值的函数),黄金分割法比二分法能用更少的搜索次数找到最优解(最值),这对于目标函数不可导时的最优解搜索很有效。
  13. lbj学习日记 01 选择结构(c++,if,switch)
  14. 软文成功案例,给企业带来的价值不可限量
  15. Unity 计算角度和方向
  16. SPI总线时钟的极性(CPOL)与相位(CPHA)
  17. pcap_findalldevs_ex 文件没有定义
  18. 人工智能会否让人类失业?新职业“指令师”即将诞生
  19. MEM/MBA数学基础(08)数据分析
  20. 阿里云服务器安装Clamav免费杀毒工具

热门文章

  1. 递归算法(二)-分治法
  2. G. Xor-MST(异或最小生成树)
  3. P2408 不同子串个数 SAM
  4. Codeforces Round #693 (Div. 3) E. Correct Placement 思维
  5. P2498 [SDOI2012]拯救小云公主
  6. Codeforces Round #715 (Div. 2)
  7. 牛客题霸 [连续子数组的最大和] C++题解/答案
  8. 【每日一题】4月8日题目精讲 黑白树
  9. CF573E-Bear and Bowling【dp,平衡树】
  10. P4552-[Poetize6]IncDec Sequence【差分】