我正在使用此代码来检测文件夹中何时创建文件/目录。在指定文件夹中创建新文件/目录时,它可以正常工作。但是,当移动到文件夹中时,它不会通知或记录文件/目录。我怎么能检测出来?
#!/usr/bin/env python
# monitors both files and dirs
import os
import pyinotify
from datetime import datetime
timestamp = datetime.today()
wm = pyinotify.WatchManager()
mask = pyinotify.IN_CREATE
class PTmp(pyinotify.ProcessEvent):
def process_IN_CREATE(self, event):
print "Created: %s " % os.path.join(event.path, event.name)
event_log = open('/home/saad/Code/test/event_log', 'a')
event_log.write(event.name + ' - ' + timestamp.strftime('%c') + '\n')
event_log.close()
notifier = pyinotify.Notifier(wm, PTmp())
wdd = wm.add_watch('/home/saad/Code/test/foo', mask, rec=True)
while True:
try:
notifier.process_events()
if notifier.check_events():
notifier.read_events()
except KeyboardInterrupt:
notifier.stop()
break
答案 0 :(得分:3)
您可以观看IN_MOVED_TO
事件:
mask = pyinotify.IN_CREATE | pyinotify.IN_MOVED_TO
class PTmp(pyinotify.ProcessEvent):
...
def process_IN_MOVED_TO(self, event):
print "Moved: %s " % os.path.join(event.path, event.name)
event_log = open('/home/saad/Code/test/event_log', 'a')
event_log.write(event.name + ' - ' + timestamp.strftime('%c') + '\n')
event_log.close()
(未经测试,因为我现在没有可用的Linux机箱)。
man page或pyinotify doc中提供了完整的inotify事件列表。
答案 1 :(得分:-1)
使用afick工具,对于Linux,来自CD驱动程序,因此无法触及,它会通过电子邮件提醒您系统上的任何更改...如果是网络服务器,建议您创建一个CD或DVD并要求他们将其放入服务器中的已安装CD驱动器中。否则从外面使用它,但我不知道如何实现。