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

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 的版本:


  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 将作为默认目录。

原文发布时间为:2017-04-13

本文来自合作伙伴“Linux中国”

时间: 2024-07-30 09:57:44

pyinotify:在 Linux 中实时监控文件系统更改的相关文章

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

Pyinotify 是一个简单而有用的 Python 模块,它可用于在 Linux 中实时监控文件系统更改. 作为一名系统管理员,你可以用它来监视你感兴趣的目录的更改,如 Web 目录或程序数据存储目录及其他目录. 它依赖于 inotify(在内核 2.6.13 中纳入的 Linux 内核功能),它是一个事件驱动的通知程序,其通知通过三个系统调用从内核空间导出到用户空间. pyinotiy 的目的是绑定这三个系统调用,并在其上提供了一个通用和抽象的方法来操作这些功能. 在本文中,我们将向你展示如

linux中Zabbix监控Linux主机设置步骤

说明: Zabbix监控服务端已经配置完成,现在要使用Zabbix对Linux主机进行监控. 具体操作: 以下操作在被监控的Linux主机进行,这里以CentOS 6.x系统为例. 一.配置防火墙,开启10050.10051的TCP和UDP端口 vi /etc/sysconfig/iptables #编辑防火墙配置文件 -A INPUT -s 192.168.21.127 -m state --state NEW -m tcp -p tcp --dport 10050:10051 -j ACCE

linux中Nagios监控LVS连接数方法

LVS 介绍 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份).我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的.在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务

linux中zabbix 监控web并添加报警

通过zabbi做web监控不仅仅可以监控到站点的相应时间,还可以根据站点返回的状态码,或者相应时间做报警   1.对需要监控的主机添加web监控   在configuration-hosts 中打开主机列表,选择需要添加监控主机的web 再单击右上角的Create scenario 在Name中输入监控的名称,Agent是选择测试站点的浏览器类型 在Staps选项卡添加测试步骤 Name是测试步骤的名称,URL监控站点的真实url,Required status colder是监控时要求页面返回

linux中SNMP+监控宝实现简单的服务器性能监控

监控宝推荐使用NET-SNMP,所以本文也以此为例.   首先,我们安装NET-SNMP.    代码如下 复制代码 yum install net-snmp net-snmp-devel net-snmp-utils   接下来我们开始配置NET-SNMP.   在配置之前,我们需要先确认已关闭SELinux(CentOS系统注意),然后,先暂时停止NET-SNMP    代码如下 复制代码 service snmpd stop   然后,添加一个只读账户(如vpsaa.com),创建一个密码

inotify + rsync + pyinotify实现Linux文件实时同步

本文介绍下用法.注意事项.pyinotify多进程实现数据同步 Inotify的出身: Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么从而能够更好地管理设备,给用户提供更好的服务.inotify 是一种文件系统的变化通知机制,如文件增加.删除等事件可以立刻让用户态得知,该机制是著名的桌面搜索引擎项目 beagle 引入的,并在 Gamin 等项目中被应用.

Linux 系统实时监控的瑞士军刀 —— Glances

早些时候,我们提到过有很多可以用来监视系统性能的 Linux 系统监视工具. 但我们估计,或许更多的用户会倾向与绝大多数 Linux 发行版都带的工具 (top 命令). top 命令是 Linux 下的一个实时任务管理器, 同时也是用于在 GNU/Linux 发行版中寻找系统性能方面的瓶颈,并帮助我们作出正确操作的常用系统监视工具. 她有着一个极为简洁的界面,并自带少量的可以帮助我们快速了解系统性能的实用选项. 但是,有些时候想要通过她寻找一个占用系统资源比较大的应用或进程可能会比较困难. 因

Linux中SSH端口号更改方法介绍

 SSH端口默认是22了,我们为了服务器的安全一般会把SSH端口22修改成其它的端口好了,下文小编来各位整理一篇SSH端口修改教程供各位参考.   vps一到手,第一件事就是更改ssh端口,使用一个不容易被拆解的端口号,防止被黑. 更改端口号是通过修改SSH的配置文件实现的,登录ssh后,输入: vim /etc/ssh/sshd_config 向下找到#Port 22这段 进入vi插入模式,进行编辑 删除掉Port 22前面的#,然后下一行输入新的端口号如:Port 10000(这个你自己定,

一个Linux中用于监控的简易shell脚本

系统管理员的任务真的很艰难,因为他/她必须监控服务器.用户.日志,还得创建备份,等等等等.对于大多数重复性的任务,大多数管理员都会写一个自动化脚本来日复一日地重复这些任务.这里,我们已经写了一个shell脚本给大家,用来自动化完成系统管理员所要完成的常规任务,这可能在多数情况下,尤其是对于新手而言十分有用,他们能通过该脚本获取到大多数的他们想要的信息,包括系统.网络.用户.负载.内存.主机.内部IP.外部IP.开机时间等. 我们已经注意并进行了格式化输出(在一定程度上哦).此脚本不包含任何恶意内