例如,要监控"当前目录"及其内部所有文件上发生的create,delete,modify,open事件,则使用如下命令:
***********************************************************************************************
inotifywait -mr --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' -e create,delete,modify,open .
***********************************************************************************************
各参数意义如下:
-m, --monitor:inotifywait的默认动作是在监控至指定文件的特定事件发生一次后就退出了,而使用此选项则可实现持续性的监控;
-r, --recursive:递归监控指定目录下的所有文件,包括新建的文件或子目录;如果要监控的目录中文件数量巨大,
则通常需要修改/proc/sys/fs/inotify/max_users_watchs内核参数,因为其默认值为8192。
--timefmt <fmt>:
当在--format选项中使用%T时,--timefmt选项则可以用来指定自定义的符合strftime规范的时间格式,此时间格式可用的格式符可以通过strftime的手册页获取;--timefmt后常用的参数是'%d/%m/%y %H:%M';
--format <fmt>:
自定义inotifywait的输出格式,如--format '%T %w %f';常用的格式符如下:
%w:显示被监控文件的文件名;
%f:如果发生某事件的对象是目录,则显示被监控目录的名字;默认显示为空串;
%T:使用--timefmt选项中自定义的时间格式;
-e <event>, --event <event>:
指定要监控的特定事件,默认是监控所有的事件;
此处<event>包括access, modify, attrib, close_write, close_nowirte, close, open, moved_to, moved_from, move, create, delete, delete_selt等;