inotify 是 Linux 内核提供的一种文件系统事件监控机制,可以用来监控文件或目录的变化,如创建、删除、修改等。在 Debian 系统中,你可以使用 inotify-tools 这个软件包来方便地使用 inotify。
以下是在 Debian 系统中配置和使用 inotify 的步骤:
sudo apt update
inotify-tools:sudo apt install inotify-tools
安装完成后,你可以使用 inotifywait 和 inotifywatch 这两个工具来监控文件系统事件。
inotifywait 可以实时监控文件或目录的变化,并输出相关信息。
示例:
inotifywait -m /path/to/directory -e create,delete,modify
-m:持续监控。/path/to/directory:要监控的目录路径。-e:指定要监控的事件类型,如 create(创建)、delete(删除)、modify(修改)等。inotifywatch 可以统计一段时间内文件系统事件的发生次数。
示例:
inotifywatch -t 60 -e create,delete,modify /path/to/directory
-t:指定监控的时间(秒)。/path/to/directory:要监控的目录路径。假设你想监控 /home/user/documents 目录下的所有文件和子目录的变化,并将输出保存到一个日志文件中,可以使用以下命令:
inotifywait -m -r -e create,delete,modify --format '%w%f %e' /home/user/documents >> /var/log/inotify.log 2>&1 &
-r:递归监控子目录。--format '%w%f %e':自定义输出格式,%w%f 表示文件路径,%e 表示事件类型。>> /var/log/inotify.log:将输出追加到日志文件中。2>&1:将标准错误输出重定向到标准输出。&:将命令放入后台运行。inotify 有文件描述符数量的限制,可以通过调整内核参数来增加这个限制:echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
通过以上步骤,你可以在 Debian 系统中配置和使用 inotify 来监控文件系统的变化。