在CentOS系统中,inotify
是一个用于监控文件系统事件的Linux内核子系统。要自定义监控规则,您可以使用inotifywait
和inotifywatch
命令行工具,它们是inotify-tools
包的一部分。以下是如何安装和使用这些工具以及自定义监控规则的步骤:
使用yum安装:
sudo yum install inotify-tools
使用dnf安装(适用于CentOS 8及以上版本):
sudo dnf install inotify-tools
inotifywait
允许您实时监控文件或目录,并根据指定的事件触发命令。
inotifywait [选项] 目标路径
-m, --monitor
:持续监控,而不是只运行一次。-r, --recursive
:递归监控目录及其子目录。-e, --event=事件
:指定要监控的事件,如CREATE
, DELETE
, MODIFY
等。-q, --quiet
:减少输出信息。-t, --timeout=秒数
:设置超时时间,在此时间内没有事件发生则退出。假设您想监控/var/www/html
目录下的所有.php
文件的创建和修改事件,并在事件发生时执行一个脚本/usr/local/bin/notify.sh
。
创建通知脚本:
sudo nano /usr/local/bin/notify.sh
内容如下:
#!/bin/bash
echo "File $1 was $2" >> /var/log/inotify.log
赋予脚本执行权限:
sudo chmod +x /usr/local/bin/notify.sh
使用inotifywait监控:
inotifywait -m -r -e create,modify --format '%w%f %e' /var/www/html/*.php |
while read FILE EVENT; do
/usr/local/bin/notify.sh "$FILE" "$EVENT"
done
inotifywatch
用于收集文件系统事件的统计信息。
inotifywatch [选项] 监控时长 目标路径
-t, --timeout=秒数
:设置监控时长。-e, --event=事件
:指定要监控的事件。-m, --monitor
:持续监控。inotifywatch -m -t 60 -e create,delete,modify /var/www/html
这将监控/var/www/html
目录60秒,并输出创建、删除和修改事件的统计信息。
通过这些工具和自定义规则,您可以灵活地监控CentOS系统中的文件系统事件。