【问题标题】:Getting File Create Notifications for CIFS Mount in Linux在 Linux 中获取 CIFS 挂载的文件创建通知
【发布时间】:2011-12-28 19:19:15
【问题描述】:

我在 ubuntu 服务器上通过 CIFS 挂载了一个 Windows 共享。我需要一种方法来了解何时将新文件添加到 Windows 共享中。我试过这个inotify程序:

http://www.thegeekstuff.com/2010/04/inotify-c-program-example/

这适用于标准目录,但无法捕获任何 CIFS 更改。虽然我愿意,但我不一定需要使用 inotify,但任何关于如何完成获取文件创建通知的建议都会很棒。

【问题讨论】:

    标签: linux samba inotify cifs


    【解决方案1】:

    我也一直在解决这个问题并遇到了同样的问题 - 不幸的是,似乎(在谷歌上进行了一些搜索之后)无法在 CIFS 挂载的分区上使用 inotify - 以下是在 redhat 论坛中几年前的帖子:

    “目前,不,这对于 CIFS 是不可能的。VFS 挂钩允许 最近删除了用于设置额外通知的文件系统。这 他们中唯一的“用户”是 CIFS,而且它从来没有正常工作过。这 这个内核接口也有严重的问题。

    我认为史蒂夫有计划重新实现它,但这是一个重大项目 这意味着向内核的 VFS 层添加新功能。”

    虽然这是几年前的事了,但我们似乎距离提供这个设施还很近 - 可惜,我也可以真正使用它!

    【讨论】:

      【解决方案2】:

      我也遇到了这个问题,得出了与 Stephen Sullivan 相同的结论(CIFS + inotify = 不行)。

      但是,由于我的工作流程碰巧依赖于远程挂载和依赖 inotify 的自动编译工具,所以我最终构建了一个(相当绝望和 hacky)解决方案,它基本上只是使用轮询来监视更改,然后触及同样的文件再次出现在挂载端,确实似乎触发了 inotify 事件。这不是我最自豪的时刻。

      话虽如此,它确实有效,所以,享受吧:http://github.com/rubyruy/watchntouch

      【讨论】:

        【解决方案3】:

        可以做到..有点

        如果您设置了 webdav 服务器并将共享包含为 webdav 位置,则可以在您的 samba 服务器上监控该位置,同时通过 webdav 从您的 Windows 机器访问它。

        最大的问题是文件权限是个混蛋……就像 apache2 webdav 一样,因为它缺少传递身份验证

        【讨论】:

          【解决方案4】:

          对于运行 Linux docker 容器的 Windows 主机,有一篇关于此问题的详细文章,其中提供了适用于“docker-windows-volume-watcher”的解决方案:http://blog.subjectify.us/miscellaneous/2017/04/24/docker-for-windows-watch-bindings.html

          Linux 实施 CIFS inotify 似乎不会很快提供支持。

          【讨论】:

            【解决方案5】:

            老话题,依然重要! 我对此的回答是:“这取决于!”。 从我此时的经验测试来看,这种行为非常清楚。如果 Linux 主机 [在 CIFS 挂载时] 启动文件系统事件,则 inotify 会正常看到它。如果托管 CIFS 挂载的 Windows 机器启动文件系统事件,则 inotify [在 Linux 机器上] 将根本看不到它。

            如果您的目标是让 Linux 主机收到有关 Windows 主机创建或写入文件的通知,那么您就不走运了。由于这可能是该机制最理想的用途,它确实使这个微妙的“取决于”答案不是那么有用!

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2014-07-09
              • 1970-01-01
              • 1970-01-01
              • 2022-01-23
              • 2017-12-20
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多