当前位置:

首页 > 编程开发 > 如何用inotify监控目录变化

如何用inotify监控目录变化

inotify是Linux实时监控文件系统变化的机制。安装inotify-tools后,使用inotifywait命令可持续监控目录,支持create、delete等事件类型。通过参数指定事件并重定向输出至日志文件,可实现后台运行。结合脚本可方便地启动监控并优雅退出。

本文目录

    在 Linux 系统里,想要实时追踪文件系统的一举一动,inotify 是个相当趁手的机制。无论是文件被创建、删除,还是内容被修改,它都能第一时间捕捉到。咱们来看看怎么用 inotify 把目录变化盯得死死的。

    安装 inotify-tools

    工欲善其事,必先利其器。inotify-tools 是一组命令行工具,专门用来和 inotify 打交道。不同系统的安装方式略有差异:

    # Debian/Ubuntu
    sudo apt-get update
    sudo apt-get install inotify-tools
    
    # CentOS/RHEL
    sudo yum install epel-release
    sudo yum install inotify-tools

    用 inotifywait 盯着目录

    inotifywait 是这套工具里的核心选手——它会在后台等待文件系统事件,一旦有动静就立刻报告。

    先来一个最基础的用法:

    inotifywait -m /path/to/directory

    加个 -m 参数,它会持续监控,每次检测到变化就会在终端输出相关信息。

    只想关注某些特定事件? 用 -e 指定就行。常见的事件类型包括:

    • create —— 文件或目录被创建
    • delete —— 文件或目录被删除
    • modify —— 文件内容被修改
    • move —— 文件或目录被移动
    • attrib —— 文件属性发生变化

    比如,只监控创建和删除:

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

    想要更详细的输出? 加上 -v 参数,能看到更多上下文信息。

    inotifywait -m -v -e create,delete /path/to/directory

    后台长期运行并把日志存起来,便于后续分析:

    inotifywait -m -v -e create,delete /path/to/directory > /var/log/inotify.log 2>&1 &

    这条命令会把标准输出和错误都重定向到 /var/log/inotify.log,并在后台默默干活。

    一个实用的监控脚本

    把上面的思路集成到一个 Bash 脚本里,可以方便地启动监控并优雅地退出:

    #!/bin/bash
    DIRECTORY="/path/to/directory"
    LOGFILE="/var/log/inotify.log"
    
    inotifywait -m -v -e create,delete "$DIRECTORY" > "$LOGFILE" 2>&1 &
    
    # 记录 inotifywait 的进程号
    PID=$!
    
    echo "Monitoring directory $DIRECTORY for changes. Press Ctrl+C to stop."
    trap "kill $PID; exit" SIGINT SIGTERM
    
    wait $PID

    保存为 monitor.sh,加上执行权限跑起来:

    chmod +x monitor.sh
    ./monitor.sh

    脚本会一直盯着目录,所有变动都记入日志,按 Ctrl+C 就能干净地停止监控。

    掌握了这些,你就能灵活运用 inotify 为文件系统变化装上“感应器”,再配合其他自动化工具,能省下不少人工盯盘的麻烦。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Linux
    相关文章 更多
    linux删除用户与用户组的方法及命令教程
    linux删除用户与用户组的方法及命令教程

    掌握Linux中删除用户和用户组的正确方法,避免残留文件和进程冲突。本文深入解析userdel和groupdel命令的参数用法,提供处理“用户仍在使用”等常见错误的实战方案。

    Linux如何开启端口号?开放端口命令详解
    Linux如何开启端口号?开放端口命令详解

    详细讲解Linux如何开启端口号以及常用的开放端口命令。

    crossover卸载软件下载及重新安装教程
    crossover卸载软件下载及重新安装教程

    遇到CrossOver运行错误或需要更新版本时,如何彻底卸载旧版并干净重装?本教程详解macOS和Linux下的卸载步骤、残留文件清理方法及官方下载渠道,确保软件环境纯净稳定。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。