温馨提示×

ubuntu inotify是什么

小樊
49
2026-10-10 13:12:13
栏目: 智能运维

在 Ubuntu(以及其它 Linux 发行版)中,inotify(inode notify)是 Linux 内核提供的一种文件系统事件监控机制,用来“监听”文件或目录发生的变化。


一句话理解

inotify 可以让你实时知道:某个文件或目录什么时候被创建、修改、删除、重命名等。


inotify 能监控哪些事件?

常见事件包括:

  • IN_MODIFY:文件被修改
  • IN_CREATE:在目录中创建新文件
  • IN_DELETE:文件被删除
  • IN_MOVED_FROM / IN_MOVED_TO:文件被移动
  • IN_ATTRIB:文件属性变化(如权限、时间戳)
  • IN_OPEN / IN_CLOSE:文件被打开 / 关闭

在 Ubuntu 中 inotify 有什么用?

典型使用场景:

  • 自动同步文件(如 rsync + inotify)
  • 热重载服务(如修改代码后自动重启)
  • 日志监控
  • 文件上传/下载监控
  • 安全审计

常见使用方式

1️⃣ 命令行工具:inotifywait

最常用的用户态工具,来自 inotify-tools

安装:

sudo apt update
sudo apt install inotify-tools

示例:

inotifywait -m /var/log

监控 /var/log 目录中所有变化。


2️⃣ 编程语言使用

  • Python:watchdog、pyinotify
  • Node.js:chokidar
  • Go:fsnotify
  • C:inotify_init(), inotify_add_watch()

内核参数(常见问题)

Ubuntu 中 inotify 有数量限制,常见问题:

查看限制

cat /proc/sys/fs/inotify/max_user_watches

修改限制(临时)

sudo sysctl fs.inotify.max_user_watches=524288

永久修改

echo "fs.inotify.max_user_watches=524288" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

一句话总结

inotify 是 Ubuntu/Linux 下用来“实时监听文件系统变化”的内核机制,是很多自动化工具和开发环境的基础。

如果你是想:

  • 写脚本监控文件
  • 解决 Too many open files 类错误
  • 或用 inotify 做某种具体功能

可以告诉我你的使用场景,我可以给你更具体的示例。

0 踩