pyinotify:在Linux中实时监控文件系统更改

简介:

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

pyinotify:在Linux中实时监控文件系统更改

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

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

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

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

依赖

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

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

如何在 Linux 中安装 Pyinotify

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

 
 
  1. # uname -r  
  2. # python -V 

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

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

现在安装 pyinotify:

 
 
  1. # pip install pyinotify 

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

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

如何在 Linux 中使用 pyinotify

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

 
 
  1. # python -m pyinotify -v /home/tecmint 
监视目录更改
监视目录更改

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

 
 
  1. # 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 的内容创作者,他喜欢用电脑工作,并坚信分享知识。





本文作者:佚名
来源:51CTO
目录
相关文章
|
28天前
|
存储 监控 Shell
【Shell 命令集合 备份压缩 】Linux 备份文件系统 dump命令 使用指南
【Shell 命令集合 备份压缩 】Linux 备份文件系统 dump命令 使用指南
35 0
|
28天前
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建Minix文件系统 mkfs.minix 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建Minix文件系统 mkfs.minix 命令使用教程
33 0
|
28天前
|
存储 Linux Shell
【Shell 命令集合 磁盘维护 】Linux 创建MS-DOS文件系统 mkfs.msdos命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建MS-DOS文件系统 mkfs.msdos命令使用教程
27 0
|
24天前
|
存储 算法 Linux
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
【Linux系统编程】Linux 文件系统探究:深入理解 struct dirent、DIR 和 struct stat结构
36 0
|
5天前
|
存储 运维 监控
深入理解 Linux 文件系统的层次结构
【4月更文挑战第14天】本文将探讨 Linux 操作系统的文件系统层次结构,这是每个系统管理员和开发人员必须掌握的核心知识。我们将从文件系统的顶层目录开始,逐步深入到每个目录的特定用途和重要性,以及它们如何协同工作以支持 Linux 系统的正常运行。
|
18天前
|
存储 固态存储 Unix
Linux中磁盘分区和文件系统管理
在Linux系统中,磁盘是存储数据的物理设备,如HDD或SSD,以文件形式存在于`/dev`目录下,如`sda`、`sdb`等。文件系统定义了如何在磁盘上组织和访问数据,常见的Linux文件系统有ext2、ext3、ext4、xfs等。通过虚拟机软件如VMware,用户可以向Linux虚拟机添加新的硬盘。
|
27天前
|
安全 Linux 数据安全/隐私保护
深入理解Linux文件系统的权限管理
在Linux操作系统中,文件系统权限管理是维护系统安全与数据完整性的基石。本文将深入探讨Linux文件系统中的权限模型,包括用户、组和其他三个层级的读、写、执行权限。通过分析权限位的具体含义和实际作用,文章旨在提供一套系统的方法论,以帮助系统管理员和开发人员更有效地配置和管理文件权限。同时,我们将通过实例展示如何使用命令行工具和配置文件来修改和查看文件权限,以及如何利用权限管理来增强系统的安全性。
|
28天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 实时监控系统性能 top命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 实时监控系统性能 top命令 使用指南
39 2
|
28天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】Linux 实时监控日志文件 swatch命令 使用指南
【Shell 命令集合 系统管理 】Linux 实时监控日志文件 swatch命令 使用指南
33 1
|
28天前
|
存储 安全 Linux
【Shell 命令集合 设备管理 】Linux 更改根文件系统的设备号 rdev命令 使用指南
【Shell 命令集合 设备管理 】Linux 更改根文件系统的设备号 rdev命令 使用指南
29 0