inotify
是 Linux 内核提供的一种文件系统事件监控机制,可以用来监控文件或目录的变化,如创建、删除、修改等。在 Debian 上配置和使用 inotify
工具,通常需要以下几个步骤:
首先,你需要安装 inotify-tools
包,它包含了一些常用的命令行工具,如 inotifywait
和 inotifywatch
。
sudo apt update
sudo apt install inotify-tools
inotifywait
是一个命令行工具,可以用来监控文件或目录的变化。以下是一些基本用法:
inotifywait -m /path/to/file_or_directory
-m
选项表示监控模式,持续监控直到手动终止。inotifywait -m -r /path/to/directory
-r
选项表示递归监控目录及其子目录。你可以指定要监控的事件类型,如 CREATE
、DELETE
、MODIFY
等。
inotifywait -m -e create,delete,modify /path/to/file_or_directory
你可以使用 -v
选项来输出更详细的信息。
inotifywait -m -v -e create,delete,modify /path/to/file_or_directory
inotifywatch
是另一个命令行工具,可以用来统计文件系统事件的发生次数。
inotifywatch -t 60 -e create,delete,modify /path/to/directory
-t
选项表示监控时间,单位为秒。-e
选项指定要监控的事件类型。你可以编写脚本来自动化 inotify
的使用。例如,以下是一个简单的脚本,用于在检测到文件修改时发送通知:
#!/bin/bash
inotifywait -m -e modify /path/to/file_or_directory |
while read path action file; do
notify-send "File $file was $action in $path"
done
将上述脚本保存为 notify.sh
,然后赋予执行权限并运行:
chmod +x notify.sh
./notify.sh
如果你希望 inotify
监控在系统启动时自动运行,可以创建一个 systemd 服务。
创建一个新的 systemd 服务文件:
sudo nano /etc/systemd/system/inotify-monitor.service
添加以下内容:
[Unit]
Description=Inotify File System Monitor
[Service]
ExecStart=/path/to/your/script.sh
Restart=always
[Install]
WantedBy=multi-user.target
启用并启动服务:
sudo systemctl enable inotify-monitor.service
sudo systemctl start inotify-monitor.service
通过以上步骤,你可以在 Debian 上配置和使用 inotify
工具来监控文件系统的变化。