首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python pyinotify移动文件

python pyinotify移动文件
EN

Stack Overflow用户
提问于 2013-04-09 14:48:02
回答 2查看 1.9K关注 0票数 2

我正在使用这段代码来检测文件/目录何时在文件夹中创建。当在指定的文件夹中创建新文件/目录时,它可以正常工作。但是,当移到文件夹中时,它不会通知或记录文件/dirs。我怎么能察觉到呢?

代码语言:javascript
复制
#!/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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-09 14:50:46

您可以观看IN_MOVED_TO事件:

代码语言:javascript
复制
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盒)。

inotify事件的完整列表可在手册页化脓性中使用。

票数 3
EN

Stack Overflow用户

发布于 2014-11-22 15:11:16

使用afick工具,对于linux,从CD驱动程序,这样afick就不会被触摸,它会通过电子邮件提醒您系统上的任何更改。如果它是一个you服务器,它非常建议您创建一个CD或DVD,并要求他们把它安装在您的服务器光盘驱动器。否则从外部使用,但我不知道这将如何实现。

http://archive09.linux.com/feature/113944

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15905132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档