fsnotify 是一个用于监测Linux文件系统事件的库
首先,确保已经安装了 inotify-tools。在Debian和Ubuntu上,可以使用以下命令安装:
sudo apt-get install inotify-tools 在CentOS和RHEL上,可以使用以下命令安装:
sudo yum install inotify-tools 安装完成后,可以使用 inotifywait 和 inotifywatch 命令来监测文件变化。
inotifywait 命令实时监测文件变化:inotifywait -m -r -e create -e modify -e delete /path/to/directory 参数说明:
-m:监控模式,持续运行直到用户终止命令。-r:递归监控子目录。-e:指定要监控的事件类型,可以有多个,用空格分隔。这里我们监控创建、修改和删除事件。/path/to/directory:要监控的目录路径。运行此命令后,你将在终端中看到实时更新的文件变化信息。
inotifywatch 命令定期监测文件变化:inotifywatch -m -r -e create -e modify -e delete --timefmt '%d/%m/%y %H:%M' --format '%T %w %e %f' /path/to/directory 参数说明:
-m:监控模式,持续运行直到用户终止命令。-r:递归监控子目录。-e:指定要监控的事件类型,可以有多个,用空格分隔。这里我们监控创建、修改和删除事件。--timefmt:时间格式,用于解析 inotifywait 输出的时间戳。--format:输出格式,这里我们显示时间、监控的目录、事件类型和文件路径。/path/to/directory:要监控的目录路径。运行此命令后,你将在终端中看到按时间顺序更新的文件变化信息。
注意:inotify 在Linux内核中的限制可能会导致性能问题,特别是在监控大量文件或频繁变化的目录时。在这种情况下,可以考虑使用其他工具,如 fswatch(跨平台)或 kqueue(macOS)。