inotify 是 Linux 内核提供的一种文件系统事件监控机制,它可以实时监控文件或目录的变化,如创建、删除、修改等。在 Ubuntu 上配置 inotify 通常涉及以下几个步骤:
安装 inotify-tools: inotify-tools 是一个提供命令行工具来使用 inotify 的软件包。你可以使用以下命令来安装它:
sudo apt-get update sudo apt-get install inotify-tools 使用 inotifywait: inotifywait 是 inotify-tools 中的一个命令行工具,它可以用来监控文件系统事件。以下是一个简单的使用示例:
inotifywait -m /path/to/directory -e create -e delete -e modify 这个命令会监控 /path/to/directory 目录,并在检测到创建、删除或修改事件时输出相关信息。
编写脚本: 你可以编写自己的脚本来使用 inotifywait 或其他 inotify 相关的工具。例如,以下是一个简单的 Bash 脚本,它会监控一个目录并在检测到事件时发送邮件通知:
#!/bin/bash MONITOR_DIR="/path/to/directory" EMAIL="your-email@example.com" inotifywait -m -r -e create,delete,modify --format '%w%f' "${MONITOR_DIR}" | while read FILE do echo "File ${FILE} has been modified." | mail -s "File Change Notification" "${EMAIL}" done 在这个脚本中,-r 选项表示递归监控子目录,--format '%w%f' 用于指定输出格式,这里输出的是发生变化的文件路径。
设置脚本权限: 如果你创建了自己的脚本,别忘了给它设置执行权限:
chmod +x /path/to/your/script.sh 运行脚本: 你可以通过终端直接运行脚本来开始监控,或者将其设置为后台服务或 cron 作业来自动运行。
请注意,inotify 有一个限制,即它只能同时监控一定数量的文件描述符。默认情况下,这个限制可能对于某些应用来说太低。如果你遇到问题,可能需要增加这个限制。可以通过以下命令来查看当前的 inotify 限制:
cat /proc/sys/fs/inotify/max_user_watches 如果需要增加限制,可以使用以下命令:
sudo sysctl fs.inotify.max_user_watches=524288 这个命令会将限制增加到 512KB。如果你想让这个改变永久生效,可以将它添加到 /etc/sysctl.conf 文件中:
fs.inotify.max_user_watches=524288 然后运行 sudo sysctl -p 来应用更改。