首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用pyinotify实时监控文件系统并报警

学神IT教育

公众号ID:XueGod-IT

关注

Pyinotify是一个Python模块,用来监测文件系统的变化。 Pyinotify依赖于Linux内核的功能—inotify(内核2.6.13合并)。

inotify是一个事件驱动的通知器,其通知接口通过三个系统调用,从内核空间到用户空间。

pyinotify结合这些系统调用,并提供一个顶级的抽象和一个通用的方式来处理这些功能。

我们使用pyinotify 实现对文件修改的监控,防止我们的文件在我们不知情的情况下被修改破坏。当然这个例子除了基本的代码编写,我们也提供了代码优化的几个思路,希望可以给大家带来帮助。

开发环境

Centos 7.4

Python 2.7

监控逻辑

监控对象

监控条件

触发事件

Pyinotify

Python 调用linux文件内核监控文件的模块

监控的条件

IN_ACCESS 文件访问

IN_MODIFY 文件被写入

IN_ATTRIB,文件属性被修改,如chmod、chown、touch 等

IN_CLOSE_WRITE,可写文件被close

IN_CLOSE_NOWRITE,不可写文件被close

IN_OPEN,文件被open

IN_MOVED_FROM,文件被移走,如mv

IN_MOVED_TO,文件被移来,如mv、cp

IN_CREATE,创建新文件

IN_DELETE,文件被删除,如rm

IN_DELETE_SELF,自删除,即一个可执行文件在执行时删除自己

IN_MOVE_SELF,自移动,即一个可执行文件在执行时移动自己

IN_UNMOUNT,宿主文件系统被umount

IN_CLOSE,文件被关闭,等同于(IN_CLOSE_WRITE | IN_CLOSE_NOWRITE)

IN_MOVE,文件被移动,等同于(IN_MOVED_FROM | IN_MOVED_TO)

开启smtp邮件服务器

腾讯smtp 服务器授权码avbbsqpwnqpefhfd

发送邮件的代码

监控部分

发送邮件部分

配置文件部分

学神IT课程全新升级

https://ke.qq.com/course/109110?flowToken=1002668

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180523G1HC4700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券