文章总结: inotify-tools是基于Linux内核inotify机制的命令行工具,用于实时监控文件系统事件如创建修改删除等。文章详细介绍了其核心组件inotifywait和inotifywatch、安装方法、常用命令示例以及与rsync结合实现文件同步的应用场景。该工具轻量高效,适合自动化脚本、实时同步和日志监控等场景,但仅限Linux系统使用且不监控远程文件系统。
综合评分: 88
文章分类: 安全工具
文件监测传输合奏利器-rsync和inotify-tools
原创
Titans
骏之安科技知识库
2025年8月5日 12:22
河南
inotify-tools 是一组基于 Linux 内核 inotify 机制的命令行工具,用于 实时监控文件系统事件(如文件创建、修改、删除等),并触发自定义操作。它是自动化脚本、实时同步、日志监控等场景的利器。
核心组件
- 1.
inotifywait
- • 监听文件/目录变化,阻塞式等待事件(适合脚本中使用)。
- 2.
inotifywatch
- • 统计文件系统事件发生的频率(调试用途较少使用)。
核心功能
-
• 监控事件类型:
-
•
CREATE(文件创建)、DELETE(删除)、MODIFY(修改) -
•
MOVED_TO(移动进入)、MOVED_FROM(移动出去) -
•
ATTRIB(权限/属性变更)、CLOSE_WRITE(写入完成) -
• 递归监控:可监控整个目录树(需配合
-r参数)。 -
• 轻量级:基于内核通知,资源占用低。
安装方法
# Debian/Ubuntu
sudo apt install inotify-tools
# CentOS/RHEL
sudo yum install inotify-tools
# Arch Linux
sudo pacman -S inotify-tools
常用命令示例
1. 基本监控(实时输出事件)
inotifywait -m /path/to/dir
- •
-m:持续监控(默认单次触发后退出)。 - • 输出示例:
/path/to/dir/ CREATE test.txt
/path/to/dir/ MODIFY test.txt
2. 监控特定事件
inotifywait -m -e create,delete /path/to/dir
- •
-e:指定监控事件(逗号分隔)。
3. 递归监控子目录
inotifywait -m -r /path/to/dir
- •
-r:递归监控(注意内核限制,需调整max_user_watches)。
4. 触发脚本(自动化同步/备份)
inotifywait -m -r -e modify,create,delete /path/to/dir | while read path action file; do
echo "Detected change: $file -> $action"
rsync -avz /path/to/dir/ user@remote:/backup/
done
- • 当文件变化时,自动触发
rsync同步。
高级用法
1. 忽略特定文件/目录
inotifywait -m --exclude '\.tmp$' /path/to/dir
- •
--exclude:正则表达式排除文件(如忽略.tmp后缀文件)。
2. 监控多个目录
inotifywait -m /dir1 /dir2
3. 调整内核限制(避免 max_user_watches 不足)
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
- • 默认限制通常为
8192,大目录需调高。
典型应用场景
- 1. 实时文件同步
- • 结合
rsync或scp,实现触发式备份(替代cron轮询)。
- 2. 开发热重载
- • 监控代码变更后自动重启服务(如
nodemon底层原理)。
- 3. 日志监控
- • 实时分析新日志条目(如
tail -f的增强版)。
- 4. 自动化构建
- • 文件修改后触发编译(如 Makefile 辅助工具)。
注意事项
- • 仅限 Linux:依赖内核
inotify机制(Windows/macOS 需替代工具如fswatch)。 - • 性能影响:监控大量文件时可能增加 CPU 负载。
- • 不监控远程文件系统:如 NFS(需客户端代理)。
替代工具对比
| 工具 | 跨平台 | 特点 |
| — | — | — |
| inotify-tools | Linux | 原生高效,适合脚本集成 |
| fswatch | 多平台 | macOS/Windows/Linux 通用 |
| entr | Linux | 简洁的触发式命令工具 |
总结:
inotify-tools 是 Linux 下 轻量级、实时文件监控 的首选工具,尤其适合需要触发自动化操作的场景(如备份、部署)。结合 Shell 脚本或 rsync,可轻松构建高效的文件同步系统。
–END–
觉得不错,可以关注,点赞,转发,如果需要技术援助,可以联系我们,期待您的莅临
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:骏之安科技知识库 Titans《文件监测传输合奏利器-rsync和inotify-tools》