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模块实时监控文件系统更改,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
- Java中使用Hibernate系列之加载并存储对象学习(第三节)
- Java中使用Hibernate系列之启动方法学习(第二节)
- Java中使用Hibernate系列之映射文件学习(第一节)
- Java中为图片添加水印效果的方法——实例代码
- Java中使用Hibernate系列之过滤器(filters)学习
- Node.js中的内存泄漏分析
- Java实现把整数转换为英语单词的方法,实用代码
- Chrome XSS审计之SVG标签绕过
- Java实现的一个简单计算器,有字符分析功能
- Java中实现判断括号是否有效的方法,实用代码
- Java中使用栈实现一个队列,实用代码
- NDK 的开发流程
- 蜜罐背后的影子系统探秘
- Oracle 免费的数据库--Database 快捷版 11g 安装使用与SOD框架对Oracle的CodeFirst支持
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」
- Python 装饰器填坑指南 | 最常见的报错信息、原因和解决方案
- 社区开源框架预制件相关模块:CollectManager详解
- Kettle构建Hadoop ETL实践(三):Kettle对Hadoop的支持
- 3种 Springboot 全局时间格式化方式,别再写重复代码了
- 一文搞懂CDN加速原理
- 3分钟短文:Laravel Carbon自定义日期时间格式
- (30)字符截取命令sed
- 2. Bean Validation声明式校验方法的参数、返回值
- 如何识别和阻止基于电报的僵尸网络
- 由String,String Builder,String Buffer 引起的面试惨案
- MySQL案例:各类临时文件的存放位置
- 关于加@Transactional注解的方法之间调用,事务是否生效的问题
- 基于Vue实现一个有点意思的拼拼乐小游戏
- 硬核手写字节码实现HelloWorld