Linux命令-inotifywait

发布于:2025-04-03 ⋅ 阅读:(18) ⋅ 点赞:(0)

inotifywait 是一个用于监控文件系统事件的命令行工具,它基于 Linux 的 inotify API。inotifywait 可以监控文件或目录的变化,如文件创建、修改、删除等事件,并在这些事件发生时执行相应的操作。以下是 inotifywait 的基本用法和一些常见示例:
基本语法

inotifywait [选项] 目标文件或目录

常用选项
-m 或 --monitor:持续监控,而不是退出。
-r 或 --recursive:递归监控目录及其子目录。
-e 或 --event:指定要监控的事件类型(如 create、delete、modify、move 等)。
-q 或 --quiet:减少输出信息。
-o 或 --outfile:将输出写入指定文件。
-t 或 --timeout:设置监控的超时时间(秒)。

常见事件类型
access:文件被访问。
modify:文件被修改。
attrib:文件属性被改变。
close_write:可写文件被关闭。
close_nowrite:不可写或只读文件被关闭。
create:文件或目录被创建。
delete:文件或目录被删除。
move:文件或目录被移动。

示例
1.监控当前目录下的文件变化

inotifywait -m -r .

2.监控特定目录下的文件创建和删除事件

inotifywait -m -r -e create -e delete /path/to/directory

3.监控特定文件的修改事件

inotifywait -m /path/to/file -e modify

4.监控日志文件的变化并实时处理

inotifywait -m /var/log/app.log -e modify --format '%w%f' | while read file; do
    echo "File $file has been modified"
    # 在这里添加处理逻辑
done

5.监控目录并执行脚本

inotifywait -m -r -e create /path/to/directory | while read path action file; do
    echo "File $file created in $path"
    # 在这里添加处理逻辑
done

6.监控文件移动事件

inotifywait -m /path/to/file -e move

7.监控文件删除事件

inotifywait -m /path/to/file -e delete

8.监控文件访问事件

inotifywait -m /path/to/file -e access

9.监控文件属性变化

inotifywait -m /path/to/file -e attrib

10.监控文件关闭事件

inotifywait -m /path/to/file -e close

输出格式
inotifywait 的输出格式通常包括以下信息:
文件路径:发生事件的文件或目录路径。
事件类型:触发的事件类型(如 CREATE、DELETE、MODIFY 等)。
文件名:发生事件的文件名。


网站公告

今日签到

点亮在社区的每一天
去签到