温馨提示×

centos inotify如何自定义监控规则

小樊
45
2025-07-23 02:03:44
栏目: 智能运维

在CentOS系统中,inotify是一个用于监控文件系统事件的Linux内核子系统。要自定义监控规则,您可以使用inotifywaitinotifywatch命令行工具,它们是inotify-tools包的一部分。以下是如何安装和使用这些工具以及自定义监控规则的步骤:

安装inotify-tools

  1. 使用yum安装

    sudo yum install inotify-tools
    
  2. 使用dnf安装(适用于CentOS 8及以上版本):

    sudo dnf install inotify-tools
    

使用inotifywait

inotifywait允许您实时监控文件或目录,并根据指定的事件触发命令。

基本用法

inotifywait [选项] 目标路径

常用选项

  • -m, --monitor:持续监控,而不是只运行一次。
  • -r, --recursive:递归监控目录及其子目录。
  • -e, --event=事件:指定要监控的事件,如CREATE, DELETE, MODIFY等。
  • -q, --quiet:减少输出信息。
  • -t, --timeout=秒数:设置超时时间,在此时间内没有事件发生则退出。

自定义监控规则示例

假设您想监控/var/www/html目录下的所有.php文件的创建和修改事件,并在事件发生时执行一个脚本/usr/local/bin/notify.sh

  1. 创建通知脚本

    sudo nano /usr/local/bin/notify.sh
    

    内容如下:

    #!/bin/bash
    echo "File $1 was $2" >> /var/log/inotify.log
    
  2. 赋予脚本执行权限

    sudo chmod +x /usr/local/bin/notify.sh
    
  3. 使用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用于收集文件系统事件的统计信息。

基本用法

inotifywatch [选项] 监控时长 目标路径

常用选项

  • -t, --timeout=秒数:设置监控时长。
  • -e, --event=事件:指定要监控的事件。
  • -m, --monitor:持续监控。

示例

inotifywatch -m -t 60 -e create,delete,modify /var/www/html

这将监控/var/www/html目录60秒,并输出创建、删除和修改事件的统计信息。

通过这些工具和自定义规则,您可以灵活地监控CentOS系统中的文件系统事件。

0