学神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
领取专属 10元无门槛券
私享最新 技术干货