在 Debian(以及所有 Linux 系统)中,inotify(inode notify) 是 Linux 内核提供的一种文件系统事件监控机制,作用主要是实时监听文件和目录的变化。
下面从“是什么、能做什么、常见用途、在 Debian 中的使用方式”几个方面说明。
inotify 是 Linux 内核子系统(从 2.6.13 开始引入),允许程序:
Debian 使用的是标准 Linux 内核,因此天然支持 inotify。
常见事件包括:
| 事件 | 说明 |
|---|---|
IN_MODIFY |
文件内容被修改 |
IN_CREATE |
新建文件或目录 |
IN_DELETE |
文件或目录被删除 |
IN_MOVED_FROM |
文件被移出监控目录 |
IN_MOVED_TO |
文件被移入监控目录 |
IN_ATTRIB |
文件属性变化(权限、时间戳等) |
IN_ACCESS |
文件被访问 |
IN_OPEN / IN_CLOSE |
文件被打开 / 关闭 |
rsync + inotifylsyncd示例场景:
当
/data目录中文件变化时,自动同步到备份服务器
例如:
nginx -s reload/etc、/bin 等敏感目录inotifywait安装:
sudo apt install inotify-tools
示例:
inotifywait -m /var/www
监听创建、删除、修改:
inotifywait -m -e create -e delete -e modify /data
pyinotify、watchdoginotify.hinotifywaitinotify 有系统级限制:
查看限制:
cat /proc/sys/fs/inotify/max_user_watches
临时修改:
sudo sysctl fs.inotify.max_user_watches=524288
永久修改(Debian):
echo "fs.inotify.max_user_watches=524288" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
监控大量文件(如 node_modules)时常常需要调大此值。
Debian 中的 inotify 用于“实时监听文件系统变化”,广泛应用于自动同步、服务热重载、日志监控和安全防护。
如果你有具体使用场景(比如“监控某个目录自动备份”或“Docker 里 inotify 失效”),我可以给你更针对性的方案。