inotify-tools是Linux下基于inotify内核的文件系统事件监控工具,包含inotifywait和inotifywatch。inotifywait可实时监听文件或目录的访问、修改、创建、删除等事件,支持递归监听、自定义输出格式及时间戳显示,常用于日志监控、自动备份和热重载;通过-m持续监听、-r递归、-e指定事件类型,结合shell脚本可实现配置变更后自动重启服务等自动化操作;inotifywatch则用于统计指定时间内各类事件的发生次数,适用于行为分析。安装可通过主流发行版包管理器完成,如apt、yum或dnf。合理选择事件类型与格式化输出能有效提升运维效率。

Linux中的inotify-tools是一组命令行工具,用于监控文件系统事件。它基于inotify内核子系统,能实时捕获文件或目录的创建、修改、删除等操作。常用于日志监控、自动备份、开发环境热重载等场景。
安装 inotify-tools
大多数主流发行版可通过包管理器直接安装:
- Ubuntu/Debian:sudo apt install inotify-tools
- CentOS/RHEL:sudo yum install inotify-tools(或使用dnf)
- Fedora:sudo dnf install inotify-tools
常用命令:inotifywait
inotifywait是最常用的命令,用于阻塞等待文件系统事件并输出结果。
基本语法:inotifywait [选项] 文件或目录
常用选项:
- -m:持续监听,不退出
- -r:递归监听子目录
- -q:静默模式,减少输出
- –format:自定义输出格式
- –timefmt:时间格式(需配合%T)
- -e:指定监听事件类型
常见事件类型:
- access:文件被读取
- modify:文件内容被修改
- create:在目录中创建新文件
- delete:文件或目录被删除
- move:文件被移动
- attrib:文件属性改变(如权限、时间戳)
示例:监听某目录下所有修改和创建事件
inotifywait -m -r -e modify,create /path/to/dir
带时间戳的监听输出:
inotifywait -m -r –timefmt ‘%Y-%m-%d %H:%M:%S’ –format ‘%T %w%f %e’ -e modify,create /var/log
输出类似:2025-04-05 10:23:01 /var/log/app.log MODIFY
进阶用法:结合脚本自动处理事件
可将inotifywait与shell脚本结合,实现自动化响应。
示例:当某个配置文件被修改时自动重启服务
inotifywait -m -e modify /etc/myapp/config.conf | while read path action file; do
echo “检测到 $path$file 被 $action”
systemctl restart myapp
done
注意:管道会启动子shell,若需在主shell中使用变量,建议写成脚本文件并后台运行。
另一个命令:inotifywatch
inotifywatch用于统计一段时间内文件系统的事件发生次数。
示例:统计30秒内/var/www/html下的事件
inotifywatch -v -e access -e modify -t 30 -r /var/www/html
结束后会输出每个文件的事件统计汇总。
基本上就这些。掌握inotifywait的常用选项和事件类型,就能满足大部分实时监控需求。不复杂但容易忽略的是事件的精确选择和输出格式控制,合理使用可大幅提升调试和自动化效率。
linux centos html app access ubuntu 工具 ai dnf 配置文件 开发环境 日志监控 html echo while format 递归 var delete 事件 linux ubuntu centos debian 自动化 Access


