inotify
是 Linux 系统中一个用于监控文件系统事件的工具
要在 Linux 中使用 inotify
监控文件系统事件,请按照以下步骤操作:
确保你的系统已安装 inotify-tools
。如果尚未安装,可以使用以下命令进行安装:
对于基于 Debian 的系统(如 Ubuntu):
sudo apt-get install inotify-tools
对于基于 RHEL 的系统(如 CentOS):
sudo yum install inotify-tools
创建一个名为 monitor.sh
的脚本文件,并在其中输入以下内容:
#!/bin/bash
# 检查参数数量
if [ $# -ne 2 ]; then
echo "Usage: $0 <directory> <event_mask>"
exit 1
fi
directory=$1
event_mask=$2
# 将事件掩码转换为十进制
event_mask_decimal=$(echo "0x$event_mask" | tr '[:upper:]' '[:lower:]')
# 使用 inotifywait 命令监控指定目录的事件
inotifywait -m -r -e create -e modify -e moved_to -e deleted --format '%w%f' "$directory" | while read file; do
echo "Event detected: $file"
# 在此处添加你想要在检测到事件时执行的命令
done
这个脚本接受两个参数:要监控的目录和要监控的事件掩码。事件掩码是一个十六进制数,表示要监控的事件类型。例如,要监控创建、修改和删除事件,可以使用 0x00000001|0x00000002|0x00000004
(即 1|2|4
的二进制表示)。
为脚本文件添加可执行权限:
chmod +x monitor.sh
运行脚本,指定要监控的目录和事件掩码:
./monitor.sh /path/to/directory 0x00000001|0x00000002|0x00000004
现在,monitor.sh
脚本会监控指定的目录,并在检测到创建、修改或删除事件时输出事件信息。你可以根据需要修改脚本,以便在检测到事件时执行其他命令。