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
来应用更改。