首页 > 编程语言 >inotify目录变动检测方法

inotify目录变动检测方法

来源:互联网 2026-07-31 16:24:04

inotify是Linux内核子系统,用于实时监控文件创建、删除、修改等事件。通过安装inotify-tools并编写脚本调用inotifywait命令,可指定目录和事件类型进行监控。需注意文件描述符限制,可通过修改max_user_watches参数调高上限。

使用 inotify 实时监控 Linux 文件系统变化

在 Linux 系统中,实时监控文件系统内发生的变化(如文件创建、删除、修改)时,inotify 是不可或缺的工具。它是内核层的一个子系统,专门负责此类事件监测。使用方法简单:Linux 提供了对应的 API,配合 inotify-tools 工具,只需几行命令即可搭建一个监控脚本。

inotify目录变动检测方法

长期稳定更新的攒劲资源: >>>点此立即查看<<<

首先确保环境中已安装 inotify-tools。大多数 Linux 发行版可通过包管理器完成安装:

sudo apt-get install inotify-tools

安装完成后,编写一个 shell 脚本(例如命名为 monitor_directory.sh),内容如下:

#!/bin/bash
# 检查参数数量
if [ "$#" -ne 2 ]; then
    echo "Usage: $0  "
    exit 1
fi
# 获取目录和事件参数
DIRECTORY=$1
EVENT=$2
# 使用 inotifywait 监控目录
inotifywait -m -r -e "$EVENT" "$DIRECTORY" --format '%w%f %e' --timefmt '%Y-%m-%d %H:%M:%S'

该脚本接收两个参数:要监控的目录以及关注的事件类型(例如 CREATE(创建)、DELETE(删除)、MODIFY(修改)等)。接着为脚本添加执行权限:

chmod +x monitor_directory.sh

然后即可运行,例如监控目录下的文件创建事件:

./monitor_directory.sh /path/to/directory CREATE

一旦有文件被创建,终端会立即输出相关路径和事件信息。

注意事项:文件描述符数量限制

使用 inotify 时有一个常见问题:可监控的文件描述符数量存在限制,默认值通常较低(例如 128)。如果监控的是大目录或文件数量极多,可能遇到“超出限制”的报错。首先查看当前限制值:

cat /proc/sys/fs/inotify/max_user_watches

若限制不足,可使用 root 权限临时或永久调高。例如设置为 524288:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

该值可根据实际需求调整,调高后即使面对超大目录也能稳定监控。

侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述

热游推荐

更多
湘ICP备2026025700号-3 湘公网安备 43070302000280号
All Rights Reserved
本站为非盈利网站,不接受任何广告。本站所有软件,都由网友
上传,如有侵犯你的版权,请发邮件给xiayx666@163.com
抵制不良色情、反动、暴力游戏。注意自我保护,谨防受骗上当。
适度游戏益脑,沉迷游戏伤身。合理安排时间,享受健康生活。