Inotify地址:访问
# -*- coding:utf-8 -*-
import os
import pyinotify
from functions import *
WATCH_PATH = \'\' #监控目录
if not WATCH_PATH:
wlog(\'Error\',\"The WATCH_PATH setting MUST be set.\")
sys.exit()
else:
if os.path.exists(WATCH_PATH):
wlog(\'Watch status\',\'Found watch path: path=%s.\' % (WATCH_PATH))
else:
wlog(\'Error\',\'The watch path NOT exists, watching stop now: path=%s.\' % (WATCH_PATH))
sys.exit()
class OnIOHandler(pyinotify.ProcessEvent):
def process_IN_CREATE(self, event):
wlog(\'Action\',\"create file: %s \" % os.path.join(event.path,event.name))
def process_IN_DELETE(self, event):
wlog(\'Action\',\"delete file: %s \" % os.path.join(event.path,event.name))
def process_IN_MODIFY(self, event):
wlog(\'Action\',\"modify file: %s \" % os.path.join(event.path,event.name))
def auto_compile(path = \'.\'):
wm = pyinotify.WatchManager()
mask = pyinotify.IN_CREATE | pyinotify.IN_DELETE | pyinotify.IN_MODIFY
notifier = pyinotify.ThreadedNotifier(wm, OnIOHandler())
notifier.start()
wm.add_watch(path, mask,rec = True,auto_add = True)
wlog(\'Start Watch\',\'Start monitoring %s\' % path)
while True:
try:
notifier.process_events()
if notifier.check_events():
notifier.read_events()
except KeyboardInterrupt:
notifier.stop()
break
if __name__ == \"__main__\":
auto_compile(WATCH_PATH)