温馨提示×

如何设置inotify的事件触发

小樊
46
2025-10-05 22:21:07
栏目: 编程语言

inotify 是 Linux 系统中的一个内核子系统,用于监控文件系统事件

  1. 安装 inotify-tools: 在大多数 Linux 发行版中,inotify-tools 包提供了 inotifywaitinotifywatch 命令。使用以下命令安装:

对于基于 Debian 的系统(如 Ubuntu):

sudo apt-get install inotify-tools 

对于基于 RHEL 的系统(如 CentOS):

sudo yum install inotify-tools 
  1. 使用 inotifywait 监控文件或目录: inotifywait 命令允许您实时监控文件或目录的变化。以下是一些常用的选项:
  • -m:监控模式,持续监控指定的文件或目录。
  • -r:递归监控目录及其子目录中的所有文件。
  • --format:自定义输出格式。
  • --timefmt:自定义时间格式。

示例:监控名为 test.txt 的文件的变化:

inotifywait -m --format '%w%f %e' --timefmt '%Y-%m-%d %H:%M:%S' test.txt 

示例:递归监控名为 my_directory 的目录及其子目录中的所有文件的变化:

inotifywait -m -r --format '%w%f %e' --timefmt '%Y-%m-%d %H:%M:%S' my_directory 
  1. 根据事件触发操作: 您可以将 inotifywait 命令与其他命令或脚本结合使用,以便在检测到特定事件时执行操作。例如,当 test.txt 文件被修改时,创建一个备份文件:
while inotifywait -e modify test.txt; do cp test.txt test_backup.txt done 

在这个例子中,我们使用 -e modify 选项来指定我们只关心文件的修改事件。当事件发生时,我们将执行 cp 命令来创建一个备份文件。

这只是一个简单的示例,您可以根据需要编写更复杂的脚本来处理不同的事件和执行各种操作。

0