【问题标题】:python pyinotify event from externally created file来自外部创建的文件的 python pyinotify 事件
【发布时间】:2011-12-21 14:35:53
【问题描述】:

我有一个 pyinotify 实例监视已安装的网络驱动器(使用 CIFS 安装) 的 IN_WRITE_CLOSE 事件,如果服务器本身完美地拾取系统创建的事件(sudo cp、sudo mv 等)将文件放在此目录中。

但是,我想获取由不同服务器和程序在此网络驱动器上创建的文件的事件。

由于某种原因,我的 inotify 实例没有看到这些事件...这是正常行为还是我的代码有问题?如果这正常行为,有没有办法解决它,还是我必须找到除 inotify 之外的其他监控工具来收集这些事件?

更新

根据@Cedric 的回答,我将挂载点更改为 NFS,但仍然没有收到任何事件。

【问题讨论】:

  • 您使用的是哪种网络挂载方式? NFS、CIFS ...?

标签: python inotify network-drive


【解决方案1】:

根据 linux cifs 客户端上的this thread,这在 2009 年没有实现(也没有真正计划)。

对于 NFS 部分,它适用于 NFS 挂载,但前提是侦听器与文件的创建者/修改者/删除者是同一台机器...... :( (source here)

最后,我创建了一个钩子 (just here),这是一个 Python 脚本,你必须在远程服务器上运行它,它将向你发送事件(该脚本用于与http,但你可以实现自己的发送者)

【讨论】:

  • @sadmicrowave :答案似乎是“是的,很遗憾?”
  • 这不是一个真正的问题(在这种情况下),因为我的网络驱动器也是 NFS 可挂载的。我现在只是收到“权限被拒绝”错误,我正在努力解决这个问题。您是否知道在 *nix OS (ubuntu) 上发送安装错误的错误日志
  • @sadmicrowave : 应该在/var/log/syslog
  • 我终于让我的 NFS 正确挂载,但是当另一个服务器程序创建文件时,pyinotify 实例仍然找不到事件。我什至将事件处理程序更改为 ALL_EVENTS 但没有找到任何东西...
  • @sadmicrowave :好吧,它适用于 NFS 挂载,但前提是侦听器与文件的创建者/修改者/删除者是同一台机器......我在上次搜索时编辑了我的答案结果。
猜你喜欢
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-14
相关资源
最近更新 更多