转载使用inotify-tools监控文件夹或文件的变动

news/2024/9/21 16:34:53
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/ywd1992/article/details/106251339

文章目录

一、 前言

  1. 什么是inotify和inotify-tools
  2. 检查系统是否支持inotify
    二、安装使用inotify-tools
  3. 获取安装包
  4. 编译安装
  5. 脚本编写
  6. 使用

一、前言

1、什么是inotify和inotify-tools

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

inotify-tools包括一个C库和一组命令行工具,可在命令行下提供对文件系统事件的监控。inotify-tools安装后会得到inotifywait和inotifywatch这两条命令:

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

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

2、检查系统是否支持inotify

Linux内核从2.6.13开始引入了inotify机制,所以我们要检查系统内核是否在2.6.13之上,如果低于这个版本,就需要重新编译内核加入inotify的支持
image

如果内核高于2.6.13版本,则查看系统是否支持inotify,如果可以看到如下三个文件,则代表支持
ls -lsart /proc/sys/fs/inotify
image

二、安装使用inotify-tools

1、获取安装包

https://github.com/inotify-tools/inotify-tools

2、编译安装

tar -xvf inotify-tools-3.20.2.2.tar.gz
cd inotify-tools-3.20.2.2

./configure --prefix=/usr/local/inotify
make && make install

3、脚本编写

创建监控脚本目录、脚本、被监控文件或目录清单文件
mkdir -p /usr/local/inotify/shell && touch /usr/local/inotify/shell/{watch.sh,file}

编写监控脚本,比如要监控root目录,并将监控到的这个目录下的所有变化都记录到一个名为inotify.log的文件中,清单文件file中填写/root的完整路径,如果要监控多个,一个文件一行
image

vim /usr/local/inotify/shell/watch.sh

#!/bin/bash
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%y-%m-%d %H:%M' --format '%T %w%f %e' -e modify,delete,create,attrib,move,open --outfile '/usr/local/inotify/shell/inotify.log' --fromfile '/usr/local/inotify/shell/file'

  • 参数解释:
  • –timefmt 时间格式
  • –format 输出格式
  • -e 定义监控的事件,可用参数:
    open 打开文件
    modify 修改文件
    delete 删除文件
    create 新建文件
    attrib 属性变更
    move 移动文件
  • –outfile 输出到一个文件
  • –fromfile 从文件读取需要监视的文件或排除的文件,一个文件一行,排除的文件以@开头
4、使用

启动监控脚本

cd /usr/local/inotify/shell/
chmod +x watch.sh
./watch.sh &

image
传一个文件speedtest-cli,然后去查看inotify.log日志,可以看到记录到的上传的完整信息
image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hjln.cn/news/46895.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

在 KubeSphere 上快速安装和使用 KDP 云原生数据平台

作者简介:金津,智领云高级研发经理,华中科技大学计算机系硕士。加入智领云 8 余年,长期从事云原生、容器化编排领域研发工作,主导了智领云自研的 BDOS 应用云平台、云原生大数据平台 KDP 等产品的开发,并在多个大规模项目中成功实施落地,在大规模容器化编排系统方向有丰…

【New Relic】给基于.NET Framework 4.0 的 exe 程序安装New Relic

由于.NET Framework 4.0 是比较古老的版本,只有New Relic 7.0以下的版本才会支持.NET Framework 4.0的引用程序。 Technical support for .NET Framework 4.0 or lower 你可以参考这个官方Install New Relic to Monitor your App的文档。1. 创建New Relic 账号 创建一个New R…

02-Excel初阶操作-学习笔记

数据透视表专题续 利用筛选字段切换数据场景:在数据透视表中显示各个所属地区每个月筛选出宠物用品类别,销售部门为三科的发生额,并在会议时展示,样例如下所示。具体操作step1:制作数据透视表 点击任意单元格——插入选项卡——数据透视表——将“订购日期”拖拽到行字段,…

开始预习数据库第四天中

你怎么知道我马上要考的数据库(4) 开始时间 2024-06-18 13:50:10 结束时间 2024-06-18 15:35:38 前言:中午休息结束,追上了一把十剪纸,但是确实打不过九吉星,主要是发财树搞钱太多了,实在打不过两张以上的三星五费。总结:去消社买饮料去,休息会,下半场复习数学建模,…

schema-change-implement

TiDB 的异步 schema 变更实现 背景 现在一般数据库在进行 DDL 操作时都会锁表,导致线上对此表的 DML 操作全部进入等待状态(有些数据支持读操作,但是也以消耗大量内存为代价),即很多涉及此表的业务都处于阻塞状态,表越大,影响时间越久。这使得 DBA 在做此类操作前要做足…

Xilinxddr3 mig ip核:基于native接口的ddr3读写控制

一、MIG IP核读写时序如下图是7系列的MIG IP核结构框图。左侧是用户接口,即用户(FPGA)同MIG交互的接口,用户就必须掌握这些接口才可以使用该IP核。将用户侧的信号分类如下图。其中的输入输出是相对于MIG IP核的,即对用户侧来说是相反的。写命令操作时序如下,其中,写操作…

Google 新 AI 为视频生成配乐和对白;Runway 发布 Gen-3 视频生成模型丨 RTE 开发者日报 Vol.226

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点…