如何使用 dnotify /inotify 命令持续监控目录

2024-03-05

我是 dnotify/inotify 命令的新手。任何人都可以帮助我如何编写一个脚本,以便它持续监视目录并指示它有一些更改或修改。


Inotify 本身是一个内核模块,可以通过调用来访问,例如一个 C 程序。

https://linux.die.net/man/7/inotify https://linux.die.net/man/7/inotify

有一个名为 inotify-tools 的应用程序套件,其中包含:

inotifywait - 使用 inotify 等待文件更改

http://linux.die.net/man/1/inotifywait http://linux.die.net/man/1/inotifywait

and

inotifywatch - 使用 inotify 收集文件系统访问统计信息

http://linux.die.net/man/1/inotifywatch http://linux.die.net/man/1/inotifywatch

您可以直接从命令行使用 inotify,例如像这样持续监视主目录下的所有更改(可能会生成大量输出):

inotifywait -r -m $HOME

下面是一个持续监控 Apache 日志活动并对其做出反应的脚本,该脚本是从 inotifywait 的 man 文件复制的:

#!/bin/sh
while inotifywait -e modify /var/log/messages; do
  if tail -n1 /var/log/messages | grep httpd; then
    kdialog --msgbox "Apache needs love!"
  fi
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 dnotify /inotify 命令持续监控目录 的相关文章

  • linux x86 汇编语言 sys_read 调用的第一个参数应为 0 (stdin)

    我正在编写一个简单的汇编程序来从标准输入读取 如 scanf 这是我的代码 section bss num resb 5 section txt global start start mov eax 3 sys read mov ebx 0
  • 这个反斜杠在这段汇编代码中起什么作用?

    我不确定这些推线有什么区别 修剪下来来自 Linux 的 x86 entry calling h https github com torvalds linux blob 241e39004581475b2802cd63c111fec43b
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • Linux 桌面快捷方式和安装图标

    我需要添加什么到我的 spec文件来创建桌面快捷方式并在安装过程中为快捷方式分配一个图标 rpm 如果需要脚本 一个示例将非常有帮助 您在 Linux 下使用 desktop 文件作为图标 图标放置的位置取决于您使用的发行版和桌面环境 由于
  • 同步 I/O 是否会使线程繁忙?

    假设我正在同步 I O 套接字上执行 I O 该套接字已准备好read or write手术 这意味着调用线程不会在操作上被阻塞 无论非阻塞 SOCK NONBLOCK 套接字的阻塞性质 但以下事情我不清楚 实际转移何时发生 当套接字标记为
  • 在主目录中安装库

    在 Linux Ubuntu 中 我尝试运行一个工具 但它显示错误 库丢失 我无权在系统中安装任何内容 或者根本无法从我的用户帐户执行 sudo 是否可以在我的主目录 没有 sudo 中安装缺少的库 在我的例子中为 libstdc so 6
  • SONAR - 使用 Cobertura 测量代码覆盖率

    我正在使用声纳来测量代码质量 我不知道的一件事是使用 Cobertura 测量代码覆盖率的步骤 我按照以下步骤操作http cobertura sourceforge net anttaskreference html http cober
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • 如何模拟ARM处理器运行环境并加载Linux内核模块?

    我尝试加载我的vmlinux into gdb并使用 ARM 内核模拟器 但我不明白为什么我会得到Undefined target command sim 这是外壳输出 arm eabi gdb vmlinux GNU gdb GDB 7
  • 嵌入式Linux poll()不断返回

    我有一个特别的问题 当我知道没有什么可读时 民意调查不断返回 因此设置如下 我有 2 个文件描述符 它们构成fd设置民意调查监视 一种用于引脚从高到低的变化 GPIO 另一个用于代理输入 代理输入出现问题 处理的顺序是 启动main函数 然
  • Godaddy 托管上的 CakePHP 控制台

    我一直在努力让我的 CakePHP 网站在 Godaddy 网格托管 帐户上运行 我的蛋糕应用程序设置是从帐户的子目录托管的 并且可以通过子域访问 我必须调整我的 htaccess 文件才能使其正常工作 现在我需要让 CakePHP 控制台
  • Elasticsearch 无法写入日志文件

    我想激活 elasticsearch 的日志 当我运行 elasticsearch 二进制文件时 我意识到我在日志记录方面遇到问题 无法加载配置 这是输出 sudo usr share elasticsearch bin elasticse
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • Android:ANT 构建失败,并显示 google-play-services-lib:“解析为没有项目的 project.properties 文件的路径”

    我正在尝试使用 ANT 构建我的应用程序 但在包含 google play services lib 库项目后 我惨遭失败 Step 1 我在 project properties 文件中设置了对库项目的引用 android library
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • 如何通过替换为空页映射来取消映射 mmap 文件

    Linux 用户空间有没有办法用空页面 映射自 dev null 或者可能是一个空页面 重复映射到从文件映射的页面的顶部 对于上下文 我想找到这个 JDK bug 的修复 https bugs openjdk java net browse
  • 如何使用 xterm.js 创建基于 Web 的终端以 ssh 进入本地网络上的系统

    我偶然发现了这个很棒的图书馆xterm js https xtermjs org 这也是 Visual Studio Code 终端的基础 我有一个非常普遍的问题 我想通过基于网络的终端 不在网络中 可能位于 aws 服务器上 访问本地网络
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • 如何禁用 GNOME 桌面屏幕锁定? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何阻止 GNOME 桌面在几分钟空闲时间后锁定屏幕 我已经尝试过官方手册了在红帽 https access redhat com doc
  • 如何在 shell 脚本中并行运行多个实例以提高时间效率[重复]

    这个问题在这里已经有答案了 我正在使用 shell 脚本 它读取 16000 行的输入文件 运行该脚本需要8个多小时 我需要减少它 所以我将其划分为 8 个实例并读取数据 其中我使用 for 循环迭代 8 个文件 并在其中使用 while

随机推荐

  • 添加资源文件到xcode

    我正在尝试将一些新的资源文件添加到由另一个人在另一台 Mac 上构建的项目中 我认为该项目有前人的规定 使用右键单击 gt 将文件添加到 MyProject 不会提供预期的结果 编译项目后 添加的文件在应用程序中不可见 如何在我的项目中添加
  • 最新的 Jersey 示例不起作用

    我已经安装了最新版本的球衣 捆绑版本 2 13 0 以及该版本的示例 然后我尝试了 用于测试 Restful 服务 examples helloworld pure jax rs src main java org glassfish je
  • JavaScript 加载图像的进度

    JS 有没有办法在加载图像时获取加载图像的进度 我想使用HTML5新的Progress标签来显示加载图像的进度 我希望有这样的东西 var someImage new Image someImage onloadprogress funct
  • MongoDB - 大量 MongoCleaner 线程

    不知何故 我的 java 应用程序与 mongodb 通信最终产生了大量名为 MongoCleanerXXX 的停放 睡眠 线程 我认为它来自驱动程序 其数量约为 600 显然数据库存在一些连接问题 在 mongod 重新启动一段时间后确实
  • 我的 httpd.conf 是空的

    我最近在 ubuntu 上安装了 apache2 但我有一个问题 我的 httpd conf 是空的 有人能给我一份 ubuntu 上 apache2 的 httpd conf 的干净副本吗 谢谢 编辑 我看到了你的答案 但在 wampse
  • 如何让dput删除多余的数据?

    我想要一个 SO 问题的最小可重现代码 我一直在使用dput droplevels head df 50 然而 df大约有 4k 条记录 看起来像dput正在为每个人打印一些东西 我需要在问题中显示两个不同的 df 所以不会让我超过 30
  • 打字稿中具有数据水合/脱水的类

    我想分享 React TS 前端和 Node TS 后端之间的 TS 类或接口 问题是 TS 类型在编译时被剥离 所以当我想将类实例转换为 JSON 时我无法使用它们 我想知道是否有任何解决方案可以在静态文件中描述我的对象 生成 TS 类
  • 在 .Net 2.0 中对 IList 进行排序的最佳方法是什么?

    我有一个IList
  • 当调试器设置为 LLDB 时,Xcode 4 挂起附加到(应用程序名称)

    当我在模拟器中运行应用程序时 Xcode 挂在 附加到 应用程序名称 上 但这仅在调试器设置为 LLDB 时发生 当调试器设置为 GDB 时 应用程序运行良好 产品 gt 编辑方案 gt 运行 gt 调试器 如何修复此问题以使用 LLDB
  • C static 关键字与 C++ 私有作用域?

    本地翻译单元的 C 等效项是什么staticC 中的函数 例如有以下内容bar c static void bar 在C 中 这会被写成私有成员函数吗 class foo void bar void foo bar 私有成员函数隐式引入了t
  • 用例图包括

    我有一个关于用例图的问题 如图所示 用户可以输入或更新他的姓名和问题 正如您所看到的 用户在第一次输入信息时需要输入姓名和问题 因此包括在内 但是 如果他希望更新他的信息 图表是否表明他必须修改名称和问题 因为它们包含在内 例如 如果他拼错
  • Economist.com 如何实施其粘性标题? jQuery?

    如果您访问 经济学人 网站上的一篇文章 例如 http www economist com node 17629757 http www economist com node 17629757 当您向下滚动页面超过某个点 使用 PAGEDO
  • 如何禁用 <> 的自动关闭而不禁用其他括号 () {}?

    我对自动完成的功能感到恼火 lt gt Rust 的 VSCode 中的括号 虽然它在指定泛型类型时可能很有用 但当它为我的小于运算符自动完成 gt 时 它确实让我烦恼 我知道我可以完全禁用自动关闭括号 但是有没有办法指定其中哪些应该被视为
  • 如何使用 matplotlib 在 python 中绘制 3D 密度图

    我有一个 x y z 蛋白质位置的大型数据集 并且想将高占用率区域绘制为热图 理想情况下 输出应该类似于下面的体积可视化 但我不确定如何使用 matplotlib 实现这一点 我最初的想法是将我的位置显示为 3D 散点图 并通过 KDE 对
  • 让 Flex 容器采用内容的宽度,而不是宽度 100%

    在下面的示例中 我有一个具有以下样式的按钮 button flexbox approach other button styles display flex justify content center align items center
  • 如何使用 Windows api 更改时区设置

    我需要在我的应用程序中通过 API 更改 DST 和时区 我在以下链接末尾修改并复制了 GetTimeZoneInformation 用法的示例并运行了它 http msdn microsoft com en us library wind
  • 来自 gstatic 的 PhantomJS JavaScript 错误,但浏览器中没有错误

    我最近通过 PhantomJS 测试套件运行我们的网站 遇到了无法在浏览器中手动重现的 JavaScript 错误 这些错误是在 Google 地图 api 中发现的 Capybara 返回的文本如下 TypeError Unable to
  • 如何连接多个queryDSL表

    我有一些表 我想使用 queryDSL 连接获取结果 但没有找到任何使用 queryDSL 进行多个连接的示例 我有这些表 账户表 accountId PK 电子邮件 密码 account profile 表 accountId PK fk
  • 为什么我可以在模式匹配中将 :: 运算符与 Seq 一起使用,但在其他地方却不能

    所以我对 Scala 中 Seq 的这种行为感到非常困惑 使用模式匹配时 我可以使用 or 运算符 它们似乎可以互换 val s Seq 1 2 3 s match case x l gt 但是当我尝试使用时 在不同的情况下像这样 val
  • 如何使用 dnotify /inotify 命令持续监控目录

    我是 dnotify inotify 命令的新手 任何人都可以帮助我如何编写一个脚本 以便它持续监视目录并指示它有一些更改或修改 Inotify 本身是一个内核模块 可以通过调用来访问 例如一个 C 程序 https linux die n