inotifywait实时监控⽂件⽬录
⼀、inotify简介
inotify 是⼀种强⼤的、细粒度的、异步⽂件系统监控机制,它满⾜各种各样的⽂件监控需要,可以监控⽂件系统的访问属性、读写属性、权限属性、创建删除、移动等操作,也可以监控⽂件发⽣的⼀切变化。
inotify-tools 是⼀个C库和⼀组命令⾏的⼯作提供Linux下inotify的简单接⼝。
inotify-tools中包含inotifywait和inotifywatch两个命令
inotifywait 命令可以⽤来收集有关⽂件访问信息,Linux发⾏版⼀般没有包含这个命令。需要安装inotify-tools,这个命令还需要将inotify⽀持编译⼊Linux内核,好在⼤多数Linux都在内核中启⽤inotify。
inotifywatch命令⽤于收集关于被监控的⽂件系统的统计数据,包括每个inotify事件发⽣多少次。
⼆、inotifywait 使⽤
-m #持续监听
-r #使⽤递归形式监控⽬录
-q #减少冗余信息,只打印出需要的信息
-e #指定要监控的事件,多个事件使⽤逗号隔开
access #访问,读取⽂件
modify #修改,⽂件内容被修改
attrib #属性,⽂件元数据被修改
move #移动,对⽂件进⾏移动操作 move_to move_from
create #创建,⽣成新⽂件
open #打开,对⽂件进⾏打开操作
close #关闭,对⽂件进⾏关闭操作 close_write close_nowrite
delete #删除,⽂件被删除 delete_self
unmount #卸载⽂件或⽬录的⽂件系统
-
-timefmt #时间格式 y 年 m⽉ d⽇ H⼩时 M分钟
--format #监控事件发⽣后的信息输出格式
%w #表⽰发⽣事件的⽬录
%f #表⽰发⽣事件的⽂件
%e #表⽰发⽣的事件
%Xe #事件以“X”分隔
%T #使⽤由 --timefmt定义的时间格式
--exclude #排除⽂件或⽬录时,⼤⼩写敏感正则匹配两个大写字母加两个数字
# --exclude="(.*.swp)|(.*~$)|(.*.swx)"使⽤正则匹配排除⽂件
--excludei #同 --exclude 但是不区分⼤⼩写
**问题: **
/
usr/local/bin/inotifywait: error while loading shared libraries:libinotifytools.so.0: cannot open shared object file: No such file or directory
解决⽅法:ln -s /usr/local/lib/libinotifytools.so.0/usr/lib64/libinotifytools.so.0
三、inotifywatch 使⽤
--fromfile #从⽂件读取需要监视的⽂件或排除的⽂件,⼀个⽂件⼀⾏,排除的⽂件以@开头。
-z, --zero #输出表格的⾏和列,即使元素为空
--exclude #正则匹配需要排除的⽂件,⼤⼩写敏感。
--excludei #正则匹配需要排除的⽂件,忽略⼤⼩写。
-r, --recursive #监视⼀个⽬录下的所有⼦⽬录。
-t , --timeout #设置超时时间
-e , --event #只监听指定的事件。与inotifywait事件⼀致
-a , --ascending #以指定事件升序排列。
-d , --descending #以指定事件降序排列。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论