在CentOS系统中,inotify 是一种用于监控文件系统事件的机制。它允许应用程序实时响应文件或目录的变化,如创建、删除、修改等。以下是在CentOS中使用inotify的基本步骤:
首先,确保你的CentOS系统已经安装了inotify-tools,这是一个常用的命令行工具集,用于与inotify交互。
sudo yum install inotify-tools
inotifywait监控文件系统事件inotifywait是inotify-tools中的一个命令行工具,用于等待并报告文件系统事件。
inotifywait [选项] 目录
-m:监控模式,持续监控目录。-r:递归监控子目录。-e:指定要监控的事件类型,如create、delete、modify等。-q:安静模式,不输出任何信息,只返回事件代码。监控当前目录及其子目录中的所有文件创建事件:
inotifywait -m -r -e create .
监控特定文件的变化:
inotifywait -m -e modify /path/to/file
inotifywatch监控文件系统事件并生成报告inotifywatch是另一个inotify-tools中的命令行工具,用于监控文件系统事件并生成统计报告。
inotifywatch [选项] 目录 [时间间隔]
-t:指定监控的时间间隔(秒)。-e:指定要监控的事件类型。每10秒监控一次当前目录及其子目录中的文件创建事件,并生成报告:
inotifywatch -t 10 -e create .
你可以使用inotifywait或inotifywatch的输出编写自定义脚本来实现更复杂的逻辑。例如,当检测到文件创建事件时,自动备份文件或发送通知。
#!/bin/bash
MONITOR_DIR="/path/to/monitor"
LOG_FILE="/var/log/inotify.log"
inotifywait -m -r -e create --format '%w%f %e' "$MONITOR_DIR" |
while read FILE EVENT; do
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $FILE - $EVENT" >> "$LOG_FILE"
    # 在这里添加你的自定义逻辑
done
将上述脚本保存为monitor.sh,然后赋予执行权限并运行:
chmod +x monitor.sh
./monitor.sh
通过这些步骤,你可以在CentOS系统中有效地使用inotify来监控文件系统事件并实现自动化任务。