千家信息网

Linux中怎么安装和使用inotifywait命令

发表于:2025-11-12 作者:千家信息网编辑
千家信息网最后更新 2025年11月12日,本文小编为大家详细介绍"Linux中怎么安装和使用inotifywait命令",内容详细,步骤清晰,细节处理妥当,希望这篇"Linux中怎么安装和使用inotifywait命令"文章能帮助大家解决疑惑
千家信息网最后更新 2025年11月12日Linux中怎么安装和使用inotifywait命令

本文小编为大家详细介绍"Linux中怎么安装和使用inotifywait命令",内容详细,步骤清晰,细节处理妥当,希望这篇"Linux中怎么安装和使用inotifywait命令"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Linux常用命令Inotify 一种强大的、细粒度的、异步文件系统监控机制,它满足各种各样的文件监控需要,可以监控文件系统的访问属性、读写属性、权限属性、删除创建、移动等操作,也就是可以监控文件发生的一切变化。

inotifywait

异步文件系统监控机制

补充说明

inotify-tools 是一个C库和一组命令行的工作提供Linux下inotify的简单接口。inotify-tools安装后会得到inotifywait和inotifywatch这两条命令:

  • inotifywait命令 可以用来收集有关文件访问信息,Linux发行版一般没有包括这个命令,需要安装inotify-tools,这个命令还需要将inotify支持编译入Linux内核,好在大多数Linux发行版都在内核中启用了inotify。

  • inotifywatch命令 用于收集关于被监视的文件系统的统计数据,包括每个 inotify 事件发生多少次。

开始之前需要检测系统内核是否支持inotify:

使用uname -r命令检查Linux内核,如果低于2.6.13,就需要重新编译内核加入inotify的支持。

使用ll /proc/sys/fs/inotify命令,是否有以下三条信息输出,如果没有表示不支持。

 ll /proc/sys/fs/inotify total 0 -rw-r--r-- 1 root root 0 Jan  4 15:41 max_queued_events -rw-r--r-- 1 root root 0 Jan  4 15:41 max_user_instances -rw-r--r-- 1 root root 0 Jan  4 15:41 max_user_watches

安装inotify-tools

 #CentOS release 5.8/64位: tar zxvf inotify-tools-3.14.tar.gz cd inotify-tools-3.14 ./configure make make install

inotify相关参数

inotify定义了下列的接口参数,可以用来限制inotify消耗kernel memory的大小。由于这些参数都是内存参数,因此,可以根据应用需求,实时的调节其大小:

  • /proc/sys/fs/inotify/max_queued_evnets表示调用inotify_init时分配给inotify instance中可排队的event的数目的最大值,超出这个值的事件被丢弃,但会触发IN_Q_OVERFLOW事件。

  • /proc/sys/fs/inotify/max_user_instances表示每一个real user id可创建的inotify instatnces的数量上限。

  • /proc/sys/fs/inotify/max_user_watches表示每个inotify instatnces可监控的最大目录数量。如果监控的文件数目巨大,需要根据情况,适当增加此值的大小。

根据以上在32位或者64位系统都可以执行:

 echo 104857600 > /proc/sys/fs/inotify/max_user_watches echo 'echo 104857600 > /proc/sys/fs/inotify/max_user_watches' >> /etc/rc.local

如果遇到以下错误:

 inotifywait: error while loading shared libraries: libinotifytools.so.0: cannot open shared object file: No such file or directory
  **解决方法:** 32位系统:ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib/libinotifytools.so.0 64位系统:ln -s /usr/local/lib/libinotifytools.so.0 /usr/lib64/libinotifytools.so.0

inotifywait命令使用

 #!/bin/bash #filename watchdir.sh path=$1 /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y/%H:%M' --format '%T %w %f' -e modify,delete,create,attrib $path  执行输出: ./watchdir.sh /data/wsdata/tools/ 04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp 04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swx 04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swx 04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp 04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp 04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp 04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp 04/01/13/16:34 /data/wsdata/tools/ .j.jsp.swp 04/01/13/16:35 /data/wsdata/tools/ 4913 04/01/13/16:35 /data/wsdata/tools/ 4913 04/01/13/16:35 /data/wsdata/tools/ 4913 04/01/13/16:35 /data/wsdata/tools/ j.jsp 04/01/13/16:35 /data/wsdata/tools/ j.jsp 04/01/13/16:35 /data/wsdata/tools/ j.jsp 04/01/13/16:35 /data/wsdata/tools/ j.jsp~ 04/01/13/16:35 /data/wsdata/tools/ .j.jsp.swp

inotifywait命令参数

  • -m是要持续监视变化。

  • -r使用递归形式监视目录。

  • -q减少冗余信息,只打印出需要的信息。

  • -e指定要监视的事件列表。

  • --timefmt是指定时间的输出格式。

  • --format指定文件变化的详细信息。

可监听的事件

事件描述
access访问 ,读取文件。
modify修改 ,文件内容被修改。
attrib属性 ,文件元数据被修改。
move移动 ,对文件进行移动操作。
create创建 ,生成新文件
open打开 ,对文件进行打开操作。
close关闭 ,对文件进行关闭操作。
delete删除 ,文件被删除。

读到这里,这篇"Linux中怎么安装和使用inotifywait命令"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

文件 命令 系统 监控 事件 信息 内核 参数 属性 支持 监视 内容 大小 文章 变化 移动 输出 最大 接口 数据 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 2019年最新网络安全技术 视频分析管理服务器的作用 数据库分组分片架构的原理 剑侠世界服务器角色在哪里 网络安全风险自查评估报告 数据库应用技术查询题 服务器文件下有个readme 电脑网络技术服务 青浦区专业软件开发包括什么 微信视频动态怎么更新数据库 全国通用的软件开发证书 幼儿园中班网络安全知识活动 酒泉市网络安全教育平台作业 网络技术大神去哪找 网络安全主题教育活动标语 it软件开发分几个级别 软件开发工作年龄 斐讯路由器t1刷打印机服务器 中经网统计数据库如何下载数据 陕西省可移动数据库全名 数据库无法跟踪 广电网络技术标兵推荐理由 什么是汽车车载网络技术 龙华靠谱的服务器运维服务 定牛互联网科技 数据库清理自己的修改痕迹 服务器机房管理书籍 网络安全法侵犯公民个人隐私 银行网络安全员是做什么的 崇明区网络软件开发怎么样
0