Pyinotify 是一个简单而有用的 Python 模组,它可用于在 Linux 中实时监控档案系统更改。
作为一名系统管理员,你可以用它来监视你感兴趣的目录的更改,如 Web 目录或程式资料储存目录及其他目录。
 
它依赖于 inotify(在核心 2.6.13 中纳入的 Linux 核心功能),它是一个事件驱动的通知程式,其通知通过三个系统呼叫从核心空间汇出到使用者空间。
pyinotiy 的目的是系结这三个系统呼叫,并在其上提供了一个通用和抽象的方法来操作这些功能。
在本文中,我们将向你展示如何在 Linux 中安装并使用 pyinotify 来实时监控档案系统更改或修改。
依赖
要使用 pyinotify,你的系统必须执行:

Linux kernel 2.6.13 或更高
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

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

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

要退出程式,只要按下 Ctrl+C 。
注意:当你在执行 pyinotify 时如果没有指定要监视的目录,/tmp 将作为预设目录。