使用pyinotify监控文件系统的变化
pyinotify依赖Linux内核inotify功能,它需要在2.6.13版本的内核的Linux系统上运行。
1. 安装pyinotify
pip install pyinotify
安装完后可以直接在命令行上运行
python -m pyinotify /tmp
2. 使用Notifier
Notifiter是pyinotify模块最重要的类,用来读取通知和处理事件,其中WatchManage对象是必传的参数,
WatchManager保存了需要监视的文件和目录,以及监视哪些事件。
3. 事件处理器
定制事件处理方式的方法是继承ProcessEvent类,并实现process_EVNET_NAME方法
import pyinotify wm = pyinotify.WatchManager()
mask = pyinotify.IN_DELETE | pyinotify.IN_CREATE class EventHandler(pyinotify.ProcessEvent):
def process_IN_CREATE(self, event):
print("Creating:", event.pathname) def process_IN_DELETE(self, event):
print("Removing:", event.pathname) handler = EventHandler()
notifier = pyinotify.Notifier(wm, handler)
wdd = wm.add_watch('/tmp', mask, rec=True) notifier.loop()
利用pyinotify可以做很多有趣的事情:参考一个有趣的命令行工具:https://github.com/copton/react
使用pyinotify监控文件系统的变化的更多相关文章
- 【AMAD】watchdog -- 用于监控文件系统的事件,并且提供了shell命令行工具
简介 动机 作用 用法 个人评分 简介 用于监控文件系统的事件的Python库,并且提供了shell命令行工具 动机 有很多情况下,我们希望监控文件的变化,在变化之后作出一些响应. 比如flask,d ...
- .NET Core的文件系统[1]:读取并监控文件的变化
ASP.NET Core 具有很多针对文件读取的应用.比如我们倾向于采用JSON文件来定义配置,所以应用就会涉及针对配置文件读取.如果用户发送一个针对物理文件的HTTP请求,应用会根据指定的路径读取目 ...
- angularJS使用$watch监控数据模型的变化
使用$watch监控数据模型的变化 在scope 内置的全部函数中,用得最多的可能就是$watch 函数了.当你的数据模型中某一部分发生变化时,$watch 函数能够向你发出通知.你能够监控单个对象的 ...
- JavaScript监控输入框字数变化,超出限制则禁止输入
JavaScript监控输入框字数变化,超出则禁止输入 不废话,给你看看效果: 1.无输入状态: 2.输入三个字符: 3.超出5个后报错: 现在粘出代码,首先是html代码: <body> ...
- delphi 监控文件系统
elphi 监控文件系统 你是否想为你的Windows加上一双眼睛,察看使用者在机器上所做的各种操作(例如建立.删除文件:改变文件或目录名字)呢? 这里介绍一种利用Windows未公开函数实现这个功能 ...
- IO异步,读写压缩文件,监控文件系统
这节结尾IO,讲一下异步操作文件,读写压缩文件,监控文件系统这三个知识点. 异步操作文件: 说到异步,必然要了解的是async和await这两个关键字(异步详情点击基于任务的异步编程(Task ...
- [rsync+inotify]——监控客户端文件变化,rsync同步到服务器
关于rsync的配置请参考博文:http://www.cnblogs.com/snsdzjlz320/p/5630695.html 实验环境 (1) Rsync服务器:10.0.10.158 (2) ...
- 实时监控mysql数据库变化
对于二次开发来说,很大一部分就找找文件和找数据库的变化情况 对于数据库变化.还没有发现比较好用的监控数据库变化监控软件. 今天,我就给大家介绍一个如何使用mysql自带的功能监控数据库变化 1.打开数 ...
- C#~使用FileSystemWatcher来监视文件系统的变化
对于一个文件夹的改变,C#这边有自己的类来实现,我们不需要关心它的内部实现机制,不需要关心它底层调用哪些API,我们只需要关心如何去调用它,如何让它帮助我们记录文件夹的修改情况即可. #region ...
随机推荐
- Netty 介绍
本指南对Netty 进行了介绍并指出其意义所在. 1. 问题 现在,我们使用适合一般用途的应用或组件来和彼此通信.例如,我们常常使用一个HTTP客户端从远程服务器获取信息或者通过web service ...
- <<、|=、&的小例子
1. << 移位符 0x1 << 1 表示向左移1位 0x1二进制为:0001 左移1位:0010 效果: 2. | 按位或运算, & 按位与运算 enum STAU ...
- tpshop全局公共方法
TPshop 全局公告函数库 前后台可用 这里只列出有哪些方法, 简单描述, 具体的函数体查看 Application\Common\Common\function.php 文件 <?php ...
- rqalpha-自动量化交易系统(一)
因为最近做的东西牵涉到自动计算这一块,在网上搜了一下,基本上python做自动量化交易成了一个趋势,于是花了两天学习一下. 目标很简单,学习,使用. rqalpha看起来是比较成熟的,这儿看重的是自带 ...
- javapms部署之后首页不能正常显示问题
今天在ligerui的技术群里看见了javapms,于是就到官网逛了逛 首先要做的就是了解了javapms使用到的技术 然后下载了程序安装包javapms_v1.1_beta(官网下载失败了,就bai ...
- u3d加载加密和未加密
using UnityEngine; using System.Collections; public class loadnew : MonoBehaviour { public bool IsCo ...
- How to use base class's assignment operator in C++
看了android下的代码,好长时间没看了,有个关于C++的知识点不是很清楚,查了下: 如何使用基类中的赋值运算符? 引述自http://stackoverflow.com/questions/122 ...
- 2 go语言的基础
include 内置关键字 注释方法 代码结构(常量,变量,接口,函数的定义) 导入包以及包别名 可见性规则 小练习 内置关键字(25个均为小写) break case chan const cont ...
- generating-ssh-keys
https://help.github.com/articles/generating-ssh-keys/ 其中 # start the ssh-agent in the background ssh ...
- 2014-07-08 hibernate tenancy
http://en.wikipedia.org/wiki/Multitenancy http://www.infoq.com/news/2012/01/hibernate-4-released htt ...