网站搜索

Pyinotify - 在 Linux 中实时监控文件系统变化


Pyinotify 是一个简单但有用的 Python 模块,用于实时监控 Linux 中的文件系统变化。

作为系统管理员,您可以使用它来监视感兴趣的目录(例如 Web 目录或应用程序数据存储目录等)发生的更改。

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

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

pyinotiy 的目的是绑定三个系统调用,并支持在它们之上的实现,提供通用且抽象的方法来操作这些功能。

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

依赖关系

为了使用pyinotify,您的系统必须正在运行:

  1. Linux 内核 2.6.13 或更高版本
  2. Python 2.4 或更高版本

如何在 Linux 中安装 Pyinotify

首先检查系统上安装的内核和 Python 版本,如下所示:

uname -r 
python -V

一旦满足依赖关系,我们将使用 pip 安装pynotify。在大多数 Linux 发行版中,如果您使用下载的 Python 2 >=2.7.9Python 3 >=3.4 二进制文件,则已安装 Pip来自 python.org,否则,按如下方式安装:

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

它将安装默认存储库中的可用版本,如果您正在寻找 pyinotify 的最新稳定版本,请考虑克隆它的 git 存储库,如图所示。

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

如何在 Linux 中使用 pyinotify

在下面的示例中,我以 root 用户(通过 ssh 登录)的身份监控用户 howtoing 的主目录 (/home/howtoing) 的任何更改,如屏幕截图所示:

python -m pyinotify -v /home/tecmint

接下来,我们将监视 Web 目录 (/var/www/html/howtoing.com) 的任何更改:

python -m pyinotify -v /var/www/html/linux-console.net

要退出程序,只需按[Ctrl+C]即可。

注意:当您运行pyinotify而不指定任何要监控的目录时,默认情况下会考虑/tmp目录。

在 Github 上查找有关 Pyinotify 的更多信息:https://github.com/seb-m/pyinotify

目前为止就这样了!在本文中,我们向您展示了如何安装和使用 pyinotify,这是一个有用的 Python 模块,用于监视 Linux 中的文件系统更改。

您是否遇到过任何类似的 Python 模块或相关的 Linux 工具/实用程序?请在评论中告诉我们,也许您也可以提出与本文相关的任何问题。