温馨提示×

如何使用CentOS readdir监控文件变化

小樊
36
2025-12-11 17:43:25
栏目: 智能运维

在CentOS系统中,可以使用inotify-tools来监控文件变化。inotify-tools是一组基于Linux内核的inotify接口的工具,可以用来监控文件系统事件。以下是如何安装和使用inotify-tools来监控文件变化的步骤:

安装inotify-tools

  1. 更新系统包

    sudo yum update -y
    
  2. 安装inotify-tools

    sudo yum install inotify-tools -y
    

使用inotifywait监控文件变化

inotifywaitinotify-tools中的一个命令,可以用来等待文件系统事件。以下是一些常用的命令示例:

监控单个文件的变化

inotifywait -m /path/to/file -e modify,attrib,close_write,move,create,delete
  • -m:持续监控,直到手动终止。
  • -e:指定要监控的事件类型,例如modify(修改)、attrib(属性变化)、close_write(关闭写入)、move(移动)、create(创建)、delete(删除)。

监控目录及其子目录的变化

inotifywait -m -r /path/to/directory -e modify,attrib,close_write,move,create,delete
  • -r:递归监控目录及其子目录。

监控多个文件或目录的变化

inotifywait -m -e modify,attrib,close_write,move,create,delete /path/to/file1 /path/to/file2 /path/to/directory

输出详细信息

inotifywait -m -e modify,attrib,close_write,move,create,delete /path/to/file --format '%w%f %e' --timefmt '%Y-%m-%d %H:%M:%S'
  • --format:自定义输出格式。
  • --timefmt:自定义时间格式。

示例脚本

你可以编写一个简单的脚本来监控文件变化并执行某些操作。例如:

#!/bin/bash

FILE_PATH="/path/to/file"

inotifywait -m -e modify,attrib,close_write,move,create,delete "$FILE_PATH" |
while read -r directory events filename; do
    echo "File $filename in $directory was $events at $(date)"
    # 在这里添加你想要执行的操作
done

将上述脚本保存为monitor.sh,然后赋予执行权限并运行:

chmod +x monitor.sh
./monitor.sh

这样,每当监控的文件发生变化时,脚本都会输出相应的信息,并可以执行你定义的操作。

通过这些步骤,你可以在CentOS系统中使用inotify-tools来监控文件变化。

0