fswatch工具:跟踪Linux中的文件和目录更改

news2024/9/28 19:27:49

fswatch是一个跨平台的文件更改监视器,当指定文件或目录的内容被更改或修改时,它会收到通知警报。

fswatch在不同的操作系统上执行多种类型的监视器,例如:

  • 基于 Apple OS X 的文件系统事件 API 构建的监视器。
  • 基于kqueue的监视器(FreeBSD 4.1 中存在的通知接口)也支持许多 *BSD 系统(包括 OS X)。
  • 基于 Solaris 内核的文件事件通知 API 及其衍生产品的监视器。
  • 基于 inotify 的监视器,inotify 是一个内核子系统,可显示应用程序的文件系统修改。
  • 基于 ReadDirectoryChangesW 的监视器,这是一种记录目录更改的 Windows API。
  • 定期检查文件系统状态的监视器,将文件修改时间保存在内存中并手动确定文件系统更改(可以在任何可以使用 stat 的地方工作)。
fswatch的特点
  • 支持多种特定于操作系统的 API
  • 允许递归目录监控
  • 使用包含和排除正则表达式执行路径过滤
  • 支持自定义记录格式
  • 此外,它还支持周期性空闲事件

在Linux系统中安装fswatch

要在Linux上安装fswatch,请使用以下适合你特定Linux发行版命令。

sudo apt install fswatch [在Debian、Ubuntu和Mint上]
sudo yum install fswatch [在RHEL/CentOS/FedoraRocky/AlmaLinux上]
sudoemerge -a sys-apps/fswatch [在Gentoo Linux上]
sudo apk add fswatch [在Alpine Linux上]
sudo pacman -S fswatch [在Arch Linux上]
sudo zypper install fswatch [在OpenSUSE上]    
sudo pkg install fswatch [在 FreeBSD 上]

如果fswatch无法从默认系统存储库安装,可以从源构建,如以下安装说明所示。

首先,​ 使用以下git 命令克隆最新的fswatch git 存储库并安装它,命令如下:

git clone https://github.com/emcrisostomo/fswatch.git
cd fswatch
./autogen.sh
./configure
make
sudo make install
重要提示:在从源代码编译 fswatch 之前,请确保系统上安装了GNU GCC(C和C++编译器)和开发工具( Debian/Ubuntu上的build-essential )。

如果没有,请在各自的 Linux 发行版上使用以下命令安装它。

sudo dnf group install 'Development Tools' [在RHEL/CentOS/FedoraRocky/AlmaLinux上]
sudo apt-get install build-essential [在Debian、Ubuntu和Mint上]

在Debian/Ubuntu发行版上,执行fswatch命令时可能会出现以下错误。

fswatch: error while loading shared libraries: libfswatch.so.13: cannot open shared object file: No such file or directory

要修复此问题,需要执行以下命令,这将有助于刷新动态库的链接和缓存,然后才能开始使用 fswatch。

sudo ldconfig

使用fswatch监控Linux上的文件更改

运行fswatch的一般语法是:

fswatch [option] [path]

在Linux系统上,建议使用默认的inotify监视器,你可以使用-M-list-monitors选项列出可用的监视器:

fswatch -M
fswatch --list-monitors

fswatch - 列出监视器

下面的命令你您能够观察当前目录 ( home/tecmint) 中的更改,事件每4秒传送到标准输出。

-l-latency选项允许你以秒为单位设置延迟,默认值为1秒。

fswatch -l 4 .

fswatch - 监视主目录更改

下一个命令是每5秒监视/var/log/auth.log文件的更改:

fswatch -l 5 /var/log/auth.log

使用-t--timestamp选项打印每个事件的时间戳,如果以UTC格式打印时间,使用-u--utf-time选项。此外,你还可以使用-f--format-timeformat选项格式化时间:

fswatch --timestamp /var/log/auth.log

接下来,-x--event-flags告诉fswatch在事件路径旁边打印事件标志。你可以使用–event-field-seperator选项来使用特定分隔符打印事件。

fswatch --events-flags ~ /var/log/auth.log

要打印指示主目录和/var/log/auth.log文件中的更改的事件的数值,请使用-n--numeric选项,如下所示:

fswatch --numeric ~ /var/log/auth.log 

最后,你可以查看fswatch手册页以获取详细的使用选项和信息:

man fswatch

有关更多信息和使用方法,请访问fswatch Github 存储库。

如果想查看整个Linux服务器活动情况,阅读 Linux服务器:16个监控系统进程的Top命令示例

在这篇文章中,我们介绍了一个简单的命令行实用程序,可以帮助 Linux 用户在指定文件或目录层次结构的内容被修改时收到通知。

希望安装一切顺利,如果您的情况并非如此,或者遇到什么问题,可以在下面留言。

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

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

相关文章

【JAVA进阶篇教学】第十二篇:Java中ReentrantReadWriteLock锁讲解

博主打算从0-1讲解下java进阶篇教学,今天教学第十二篇:Java中ReentrantReadWriteLock锁讲解。 在并发编程中,读写锁(ReadWriteLock)是一种用于管理对共享资源的访问的锁机制,它提供了比传统的互斥锁更高的…

解读计数器算法:原理、Java实现与优劣分析

计数器算法的介绍 计数器算法的基本原理是通过一个计数器来记录事件的发生次数。每当一个特定的事件发生时,计数器的值就会增加一。当需要检查这个事件发生的次数时,只需要查看计数器的当前值即可。这种方法简单直观,易于理解和实现。 想象…

软件检测中的CNAS认证是什么?

CNAS认证机构,全称“中国合格评定国家认可委员会”(China National Accreditation Service for Conformity Assessment),是由国家认证认可监督管理委员会(CNCA)批准设立并授权的国家认可机构。该机构负责统…

深度解读《深度探索C++对象模型》之拷贝构造函数(二)

目录 含有虚函数的情形 继承链上有virtual base class的情形 抑制合成拷贝构造函数的情况 总结 接下来我将持续更新“深度解读《深度探索C对象模型》”系列,敬请期待,欢迎左下角点击关注!也可以关注公众号:iShare爱分享&#x…

android进阶-Binder

参考:Android——Binder机制-CSDN博客 机制:Binder是一种进程间通信的机制 驱动:Binder是一个虚拟物理设备驱动 应用层:Binder是一个能发起进程间通信的JAVA类 Binder相对于传统的Socket方式,更加高效Binder数据拷贝…

销售第一天拿下7400万 《我独自升级》在全球范围炸响

易采游戏网5月11日消息,近日一款名为《我独自升级》的韩式二次元游戏在全球范围内引发了热烈的反响。据悉,该游戏在上线首日便实现了惊人的收入,达到了7400万人民币,这一数字不仅远超预期,更是有史以来同类型游戏中最高…

【C++阅览室】C++之Vector(容器)

目录 vector的介绍 vector的使用 vector的定义 vector iterator 的使用 vector 空间增长问题 vector 增删查改 vector 迭代器失效问题。(重点) vector的介绍 1、 vector 是表示可变大小数组的序列容器,可以使用连…

C——单链表

一.前言 我们在前面已经了解了链表中的双向链表,而我们在介绍链表分类的时候就说过常用的链表只有两种——双向带头循环链表和单向不带头不循环链表。下来我来介绍另一种常用的链表——单向不带头不循环链表也叫做单链表。不清楚链表分类的以及不了解双向链表的可以…

数仓开发流程规范

一、目的 数据研发规范化旨在为数据开发提供规范化的研发流程指导方法,目的是简化、规范化日常工作流程,提高工作效率,较少无效与冗余工作,赋能企业更强大的数据掌控力来应对海量增长的业务数据,从而释放更多的人力与…

keil的jlink重新选择芯片识别

keil选择jlink要选择对应芯片,一旦选择成功会出现以下文件 如果选择错了芯片类型,就需要删除这两个文件,然后重新进入选择,就可以了

神经网络与空间变换关系

神经网络的隐藏层实际上就是在进行一次空间变换,隐藏层中神经元的个数就是变换后空间的维度,代表可以升维也可以降维。 不同是 神经网络的一层运算不只有矩阵乘法,还会有一个加法。以及 进行完线性计算后,还要经过非线性的激活函…

泰迪智能科技企业数据挖掘流程分析及特色服务优势

企业发展会沉淀大量的数据,数据中囊括了企业业务各种维度指标,通过数据挖掘和数据分析 ,让企业业务了解过去、现在和未来将要发生什么,从而更好的调整企业发展方向。泰迪智能科技企业数据挖掘平台是面向企业级用户快速处理数据构建…

微信小程序之简单的发送弹幕操作

大家看视频的时候是不是时不时会有弹幕飘过~ 在我们微信小程序当中,我们可以十分简单的实现,接下来为大家介绍一下吧! 我们使用微信官方给我们的一个视频链接 "http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey302802…

语言基础 /CC++ 可变参函数设计与实践,va_ 系列实战详解(强制参数和变参数的参数类型陷阱)

文章目录 概述va_ 系列定义va_list 类型va_start 宏从变参函数的强制参数谈起宏 va_start 对 char 和 short 类型编译告警宏 va_start 源码分析猜测 __va_start 函数实现 va_arg 宏宏 va_arg 无法接受 char 和 short为啥va_arg可解析int却不能解析float类型?宏 va_a…

Linux 第二十七章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

答辩PPT不会做?试试这些AI工具,一键生成

在我原本的认知里面,答辩PPT是要包含论文各个章节的,在答辩时需要方方面面都讲到的,什么摘要、文献综述、实证分析、研究结果样样不落。但是,这大错特错! 答辩PPT环节时长一般不超过5分钟,老师想要的答辩P…

【JavaSE】/*初识Java*/

目录 一、了解 Java 语言 二、Java 语言的重要性 2.1 使用程度 2.2 工作领域 三、Java 语言的特性 四、Java 的基础语法 五、可能遇到的错误 六、第一个 java 程序代码解析 七、Java 注释 八、Java 标识符 九、Java 关键字 一、了解 Java 语言 Java 是由 Sun Micr…

2023年建筑特种作业人员安全生产知识试题

100分题库提供安全员考试试题、建筑安全员考试预测题、建筑安全员ABC考试真题、安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 判断题(1-20) 1.《建筑工程安全生产管理条例》是我国第一部关于…

mac苹果电脑卡顿反应慢如何解决?2024最新免费方法教程

苹果电脑以其稳定的性能、出色的设计和高效的操作系统,赢得了广大用户的喜爱。然而,随着时间的推移,一些用户会发现自己的苹果电脑开始出现卡顿、反应慢等问题。这不仅影响使用体验,还会影响工作效率。那么,面对这些问…

2024年旅游行业薪酬报告

来源:薪智 近期历史回顾: 2024年中国健康家电消费洞察及趋势研究报告.pdf 2024巴菲特股东大会5万字完整版.pdf 2024年全国大学生新媒体直播大赛.pdf 2024北京市高级别自动驾驶示范区数据安全治理白皮书.pdf 2024年第一季度开发者健康调查报告.pdf 2024年…