1. 安装
yum -y install inotify-tools
# rpm -ivh inotify-tools-3.13-1.el6.rf.x86_64.rpm
# wget http://www.rpmfind.net/linux/mageia/distrib/7/x86_64/media/core/release/inotify-tools-3.20.1-1.mga7.x86_64.rpm
2. 命令
inotifywatch
- -e: 监听指定的事件
- -r: 监视一个目录下的所有子目录
- -z: 输出表格的行和列,即使元素为空
- -t: 超时时间
- -fromfile: 从文件中读取需要监控的文件或排除的文件
inotifywatch -e access,modify -t 60 -r /linuxcool
inotifywait
- -m: 持续监听
- -r: 使用递归形式监视目录
- -q: 减少冗余信息,只打印出需要的信息
- -e: 指定要监视的事件,多个时间使用逗号隔开
- access: 访问,读取文件。
- modify: 修改,文件内容被修改
- attrib: 属性,文件元数据被修改。
- move: 移动,对文件进行移动操作。
- create: 创建,生成新文件
- open: 打开,对文件进行打开操作
- close: 关闭,对文件进行关闭操作。
- delete: 删除,文件被删除。
- –format: 监听到的文件变化的信息
- %w: 表示发生事件的目录
- %f: 表示发生事件的文件
- %e: 表示发生的事件
- %Xe: 事件以“X”分隔
- %T: 使用由–timefmt定义的时间格式
inotifywait -mqr --format %f -e create
shell脚本
vi /script/watch_merc.sh
#!/bin/bash
MON_DIR=/data/starpos/merc
inotifywait -mqr -e create,delete,modify $MON_DIR |\
while read files; do
echo "$(date +'%F %T') $files" >> /script/log/watch_merc.log
done
报错处理
报错
# Failed to watch XXX upper limit on inotify watches reached!
Please increase the amount of inotify watches allowed per user via `/proc/sys/fs/inotify/max_user_watches’.
处理
cat /proc/sys/fs/inotify/max_user_watches # 默认值8192
echo 9999999 > /proc/sys/fs/inotify/max_user_watches