pyinotify:在 Linux 中实时监控文件系统更改
创始人
2024-03-01 19:29:38
0

Pyinotify 是一个简单而有用的 Python 模块,它可用于在 Linux 中实时监控文件系统更改

作为一名系统管理员,你可以用它来监视你感兴趣的目录的更改,如 Web 目录或程序数据存储目录及其他目录。

建议阅读: fswatch - 监控 Linux 中的文件和目录更改或修改

它依赖于 inotify(在内核 2.6.13 中纳入的 Linux 内核功能),它是一个事件驱动的通知程序,其通知通过三个系统调用从内核空间导出到用户空间。

pyinotiy 的目的是绑定这三个系统调用,并在其上提供了一个通用和抽象的方法来操作这些功能。

在本文中,我们将向你展示如何在 Linux 中安装并使用 pyinotify 来实时监控文件系统更改或修改。

依赖

要使用 pyinotify,你的系统必须运行:

  1. Linux kernel 2.6.13 或更高
  2. Python 2.4 或更高

如何在 Linux 中安装 Pyinotify

首先在系统中检查内核和 Python 的版本:

# uname -r 
# python -V

一旦依赖满足,我们会使用 pip 安装 pynotify。在大多数 Linux 发行版中,如果你使用的是从 python.org 下载的 Python 2 (>= 2.7.9) 或者 Python 3( >=3.4) 的二进制,那么 pip 就已经安装了,否则,就按如下安装:

# yum install python-pip      [On CentOS based Distros]
# apt-get install python-pip  [On Debian based Distros]
# dnf install python-pip      [On Fedora 22+]

现在安装 pyinotify

# pip install pyinotify

它会从默认仓库安装可用的版本,如果你想要最新的稳定版,可以按如下从 git 仓库 clone 下来:

# git clone https://github.com/seb-m/pyinotify.git
# cd pyinotify/
# ls
# python setup.py install

如何在 Linux 中使用 pyinotify

在下面的例子中,我以 root 用户(通过 ssh 登录)监视了用户 tecmint 的家目录(/home/tecmint)下的改变,如截图所示:

# python -m pyinotify -v /home/tecmint

Monitor Directory Changes

监视目录更改

接下来,我会观察到任何 web 目录 (/var/www/html/tecmint.com) 的更改:

# python -m pyinotify -v /var/www/html/tecmint.com

要退出程序,只要按下 Ctrl+C

注意:当你在运行 pyinotify 时如果没有指定要监视的目录,/tmp 将作为默认目录。

可以在 Github 上了解更多 Pyinotify 信息:https://github.com/seb-m/pyinotify

就是这样了!在本文中,我们向你展示了如何安装及使用 pyinotify,一个在 Linux 中监控文件系统更改的有用的 Python 模块。

你有遇到类似的 Python 模块或者相关的 Linux 工具/小程序么?请在评论中让我们了解,或许你也可以询问与这篇文章相关的问题。


作者简介:

Aaron Kili 是 Linux 和 F.O.S.S 爱好者,将来的 Linux 系统管理员和网络开发人员,目前是 TecMint 的内容创作者,他喜欢用电脑工作,并坚信分享知识。


via: http://www.tecmint.com/pyinotify-monitor-filesystem-directory-changes-in-linux/

作者:Aaron Kili 译者:geekpi 校对:jasminepeng

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

不同实现INotifyPr...
INotifyPropertyChanged接口是用于在属性值发生...
2025-01-09 17:01:10
不明白inotifywai...
inotifywait是一个Linux系统下的命令行工具,用于监视...
2024-12-26 19:30:15
病毒扫描器触发了我的ino...
要解决这个问题,您可以使用以下代码示例:import osimpo...
2024-12-18 05:30:37
entr:文件更改时重新运...
这是一篇简短的文章。我是最近才发现 entr 的,我很惊奇从来没有...
2024-03-02 05:25:41
pyinotify:在 L...
Pyinotify 是一个简单而有用的 Python 模块,它可用...
2024-03-01 19:29:38

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...