用pyinotify监控Linux文件系统
2017-01-10 本文已影响112人
君惜丶
模块事件
过程
wm = pyinotify.WatchManager() 创建监控实例
wm.add_watch(path, pyinotify.ALL_EVENTS, res=True) # 添加监控的对象
notifier = pyinotify.Notifier(wm, ev) # 绑定一个事件
notifier.loop() # 运行监控
sys模块
sys.argv 位置参数
例子:监控linux下文件系统
代码如下:
#!/usr/bin/env python
# _*_ coding:utf-8 _*_
__author__ = 'junxi'
import os
from pyinotify import WatchManager, Notifier, ProcessEvent, IN_DELETE, IN_CREATE, IN_MODIFY
class EventHandler(ProcessEvent):
"""事件处理"""
def process_IN_CREATE(self, event):
print("Create file: % s" % os.path.join(event.path, event.name))
def process_IN_DELETE(self, event):
print("Deletefile: % s" % os.path.join(event.path, event.name))
def process_IN_MODIFY(self, event):
print("Modifyfile: % s" % os.path.join(event.path, event.name))
def FSMonitor(path):
wm = WatchManager()
mask = IN_DELETE | IN_CREATE | IN_MODIFY
notifier = Notifier(wm, EventHandler())
wm.add_watch(path, mask, auto_add=True, rec=True)
print('now starting monitor % s' % (path))
while True:
try:
notifier.process_events()
if notifier.check_events():
notifier.read_events()
except KeyboardInterrupt:
notifier.stop()
break
if __name__ == "__main__":
FSMonitor('/root')
**查看结果: **