在 Linux 上通过 NFS 触发 inotify 事件?

Posted

技术标签:

【中文标题】在 Linux 上通过 NFS 触发 inotify 事件?【英文标题】:trigger inotify event over NFS on Linux? 【发布时间】:2015-03-16 08:46:54 【问题描述】:

我可以在 Linux 上触发文件系统事件,而无需实际更改文件吗? 是否有一些系统调用就像文件被写入一样? 这甚至可能吗?

当服务器站点上的文件发生更改时,我安装了 NFS 共享并希望在虚拟机中获取 inotify 事件。

inotify 似乎不适用于 NFS。 有没有支持inotify的网络文件系统?

在服务器端监控事件很容易,但是如何在客户端触发事件呢?那时我做了一个简单的touch,但这并不理想。

(用例是使用 docker(boot2docker,OS X)进行本地开发。)

【问题讨论】:

也许您可以尝试创建(然后删除?)符号链接? 【参考方案1】:

抱歉,这不是一项功能。

您可以通过使用 incrond 来监控本地文件系统来实现某种信号量,然后在远程机器上执行一些操作(触摸文件、触发脚本等)以告诉它有更新,但没有NFS 中的本机功能。

【讨论】:

【参考方案2】:

现在我正在使用 Docker for Mac。由于 osxfs 的文件共享性能不佳,我仍然使用 NFS。我写了一个 sublime text 3 插件,自动进行触摸,这解决了我的用例。

sublime text 3 插件:sublime_d4m docker for mac 中的 nfs 服务器:d4m-nfs

【讨论】:

以上是关于在 Linux 上通过 NFS 触发 inotify 事件?的主要内容,如果未能解决你的问题,请参考以下文章

Linux nfs 搭建

Linux之NFS网络文件系统

linux中NFS网络文件系统共享

linux,NFS服务,是啥啊

IMX6ULL Linux开发板通过NFS与Linux主机共享文件

linux redhat6.5中 搭建NFS服务