Linux中使用Pyinotify模块实时监控文件系统更改

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

作为系统管理员,您可以使用它来监视目标感兴趣的更改,如Web目录或应用程序数据存储目录及其他目录。这取决于inotify (包含在 2.6.13及后续Linux内核中的功能),它是一个事件驱动的通知程序,其通知通过三个系统调用从内核空间导出到用户空间。

pyinotiy的目的是绑定三个系统调用,并支持其上的实现,提供了一个共同和抽象的手段来操纵这些功能。

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

依赖关系

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

Linux内核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已经安装,否则安装如下:

# apt-get install python-pip

现在,像这样安装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登录)监视用户 jchen 的home( / home/jchen )目录的任何更改,如屏幕截图所示:

# python -m pyinotify -v /home/jchen

监控目录更改

接下来,我们会随时关注Web目录( /var/www/html/debian.cn )的任何更改:

# python -m pyinotify -v /var/www/html/debian.cn

要退出程序,只需点击[Ctrl+C] 。

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

Github上查找更多关于Pyinotify的信息:

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

总结

以上所述是小编给大家介绍的Linux中使用Pyinotify模块实时监控文件系统更改,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • linux系统之间通过nfs网络文件系统挂载设置方法

    NFS简介 NFS是Network File System的简写,即网络文件系统. 网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与他人共享目录和文件.通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件. NFS好处 以下是NFS最显而易见的好处: 1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到. 2.用户不必在每个网络上机器里头都有一个home目录.Home目录 可以被放在NFS服务

  • Linux系统中xorg.conf文件详细介绍

    先看一个完整的xorg.conf文件,如下: 复制代码 代码如下: # /.../# SaX generated X11 config file# Created on: 2009-05-31T19:02:32+0800.## Version: 8.1# Contact: Marcus Schaefer <sax@suse.de>, 2005# Contact: SaX-User list <https://lists.berlios.de/mailman/listinfo/sax-us

  • linux文件系统调整大小的方法(linux调整分区大小)

    在使用linux的过程中, 有时会出现因为安装系统时分区不当导致有的分区空间不足,而有的分区空间过剩的情况.比如: 我在安装系统时给/usr/local分配器了5G的空间,但使用一段过程后发现, /usr/local最多只用到了1G.这样可以将/usr/local大小调整为1G. 空出4G留作他用.本文归纳了在不破快文件系统数据的前提下对文件系统大小进行调整的方法.这里采用的是"拆东墙, 补西墙"的方法. 当然, 如果你的磁盘中有未分区的空闲空间, 你就不用减小某个分区的空间了. 准备

  • Linux 监控文件被什么进程修改(详解)

    安装: apt-get install auditd. 1.auditd 是后台守护进程,负责监控记录 2.auditctl 配置规则的工具 3.auditsearch 搜索查看 4.aureport 根据监控记录生成报表 比如,监控 /root/.ssh/authorized_keys 文件是否被修改过: aditctl -w /root/.ssh/authorized_keys -p war -k auth_key •-w 指明要监控的文件 •-p awrx 要监控的操作类型,append,

  • linux系统中rsync+inotify实现服务器之间文件实时同步

    之前做了"ssh信任与scp自动传输脚本"的技术文档,此方案是作为公司里备份的方法,但在实际的运行中,由于主服务器在给备份服务器传输的时候,我们的主服务器需要备份的文件是实时.不停的产生的,造成不知道主服务器给备份服务器传输了多少文件,磁盘空间就那么大,做备份的原因:一个是为了保持文件,另外一个是解决主服务器的磁盘饱满问题,但由于不知道备份服务器到底接收了多少文件,所以主服务器里的文件不敢删除(如果没有备份的情况下删除,问题就严重了,我这个是政府的项目,服务器里的文件都是重要的,删错了

  • linux系统中c++写日志文件功能分享

    简化了glog,只保留了写日志文件的功能,只是改写了linux版本,win版本未改写,可以用LOG(INFO)<< 输出日志也可用LOG_IF(INFO,condition)<<输出日志也可直接调用日志类Logger::GetInstance().Error 等方式写日志初始化时调用 InitLogging(argv[0],INFO,"./log/test");第一个参数是路径,第二个参数是最低日志级别,第三个参数表示日志文件的前缀和文件夹 FileHelper

  • shell脚本实现linux系统文件完整性检测

    今天发现个可以检测系统文件完整性的shell脚本,自己试了下还可以吧,介绍给大家. 系统:centos 5.x 脚本内容: 复制代码 代码如下: cat my_filecheck.sh #!/bin/bash # # 变量首先声明才能使用 shopt -s -o nounset   # 声明   # 建立日期   Date=$(date +'%Y%m%d%H%M%S')   # 加入审核的目录         #   Dirs="/bin /sbin /usr/bin /usr/sbin /li

  • Linux中使用Pyinotify模块实时监控文件系统更改

    Pyinotify 是一个简单而实用的 Python 模块,它用于通过 inotify 实时监控Linux文件系统的更改.用于在Linux中实时监控文件系统的变化. 作为系统管理员,您可以使用它来监视目标感兴趣的更改,如Web目录或应用程序数据存储目录及其他目录.这取决于inotify (包含在 2.6.13及后续Linux内核中的功能),它是一个事件驱动的通知程序,其通知通过三个系统调用从内核空间导出到用户空间. pyinotiy的目的是绑定三个系统调用,并支持其上的实现,提供了一个共同和抽象

  • Linux中如何查看已挂载的文件系统类型详解

    前言 如你所知,Linux 支持非常多的文件系统,例如 ext4.ext3.ext2.sysfs.securityfs.FAT16.FAT32.NTFS 等等,当前被使用最多的文件系统是 ext4.你曾经疑惑过你的 Linux 系统使用的是什么类型的文件系统吗?没有疑惑过?不用担心!我们将帮助你.本指南将解释如何在类 Unix 的操作系统中查看已挂载的文件系统类型. 在 Linux 中查看已挂载的文件系统类型 有很多种方法可以在 Linux 中查看已挂载的文件系统类型,下面我将给出 8 种不同的

  • Python pyinotify模块实现对文档的实时监控功能方法

    0x01 安装pyinotify >>> pip install pyinotify >>> import pyinotify 0x02 实现对文档的试试监控功能 这个功能类似与Ubuntu里的rail -f功能,在对目标文件进行修改时,脚本可以实时监控并将新的修改打印出来. import pyinotify import time import os class ProcessTransientFile(pyinotify.ProcessEvent): def pro

  • Linux使用 iftop 实时监控网卡的流量

    Linux使用 iftop 实时监控网卡的流量,,具体内容如下所示: iftop可以用来监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等. 在Linux/类Unix系统中可以使用top查看系统资源.进程.内存占用等信息.查看网络状态可以使用netstat.nmap等工具.若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop. 安装iftop 如果采用编译安装可以到iftop官网下载最新的源码包.安装前需要已经安装好基本的编译所需的环境,比如make.gcc.aut

  • 用vi命令删除日志中的所有内容并对日志进行实时监控

    很多时候我们对应用程序的排错需要查看日志文件,然而日志中通常有许多我们以前的应用程序产生的日志,其他的日志过多的时候,有时候看起当前应用程序产生的日志的时候有点费力,这时候我们可能想通过清除先前的日志,使得当前产生的日志看起来清晰: vi test.log :0,$d :wq 注释: :0,$d是删除第0行到最后一行的意思::wq是保存并退出的意思. 然后输入如下命令,就可以实时监控test.log里面的内容了: tail -f test.log 注释:tail命令是查看test.log文件的后

  • python 利用pywifi模块实现连接网络破解wifi密码实时监控网络

    python 利用pywifi模块实现连接网络破解wifi密码实时监控网络,具体内容如下: import pywifi from pywifi import * import time def CrackWifi(password): wifi = pywifi.PyWiFi() iface = wifi.interfaces()[0] # 取一个无限网卡 # 是否成功的标志 isok = True if(iface.status()!=const.IFACE_CONNECTED): profi

  • 详解Linux 中获取硬盘分区或文件系统的 UUID 的七种方法

    作为一个 Linux 系统管理员,你应该知道如何去查看分区的 UUID 或文件系统的 UUID.因为现在大多数的 Linux 系统都使用 UUID 挂载分区.你可以在 /etc/fstab 文件中可以验证. 有许多可用的实用程序可以查看 UUID.本文我们将会向你展示多种查看 UUID 的方法,并且你可以选择一种适合于你的方法. 何为 UUID? UUID 意即 通用唯一识别码 Universally Unique Identifier ,它可以帮助 Linux 系统识别一个磁盘分区而不是块设备

  • Linux运维基础进程管理实时监控控制

    目录 1.后台运行作业 2.使用信号控制进程 基本进程管理信号 3.监控进程活动 IO负载 4.实时进程监控 top用于实现全屏动态显示系统信息 1.后台运行作业 1.sleep 999 & (运行作业) [root@localhost ~]# sleep 999 & [1] 3670 2.ps -ef|grep sleep(查看进程) [root@localhost ~]# ps -ef|grep sleep root 3670 3642 0 10:54 pts/1 00:00:00 s

  • 基于Python实现实时监控CPU使用率

    目录 导语 一.模块简介 二.准备中 三.开始敲代码 3.1 代码内容 3.2 附完整代码 四.效果展示 导语 哈喽!大家好,我是木木子!准时上线给大家更新啦!​ Ps:小故事 前两天有位粉丝朋友在群里问我说,有没有不装一些我们熟知的电脑管理软件但是依然可以查看CPU的使用率方法,或者能够介绍一款比较给力的小插件也好.确实,在生活中有不少人是不喜欢装那些管理软件的. 今天,木木子就给大家介绍一款手写编程代码的小脚本,能够轻松在界面上展示:利用Python实时监控CPU使用率,随时展现.也无需下载

  • 详解Linux中两个查找命令locate和find教程

    Linux中有很多查找命令,今天主要讲解locate,find两个命令. 1.locate locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息.Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件.为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库. (

随机推荐