Linux inotify-最好的方法是什么?

Linux inotify-最好的方法是什么?,linux,shell,filesystems,nfs,inotify,Linux,Shell,Filesystems,Nfs,Inotify,我的linux服务器上有inotify。我在网上查阅了大量关于如何使用inotify的帖子,发现了一个示例c代码,用于监视文件创建/删除目录。它在本地目录和nfs目录下都运行良好(这正是我真正需要的) 现在看看关于如何使这成为一个始终运行的过程的观点,我发现至少从我的理解来看,有以下选项 我想试着在等待的情况下运行这个c代码,并且永远不要关闭它 incrond-这显然是一个守护进程。我的linux服务器上似乎没有它,我有rhel5,所以我想我需要安装它。不太清楚incrond将如何工作 inot

我的linux服务器上有inotify。我在网上查阅了大量关于如何使用inotify的帖子,发现了一个示例c代码,用于监视文件创建/删除目录。它在本地目录和nfs目录下都运行良好(这正是我真正需要的)

现在看看关于如何使这成为一个始终运行的过程的观点,我发现至少从我的理解来看,有以下选项

  • 我想试着在等待的情况下运行这个c代码,并且永远不要关闭它
  • incrond-这显然是一个守护进程。我的linux服务器上似乎没有它,我有rhel5,所以我想我需要安装它。不太清楚incrond将如何工作
  • inotify工具-这听起来最简单,因为它说我可以在shell脚本中使用命令
  • 我也有一些问题,比如当nfs挂载被移除、服务器关闭等时会发生什么,inotify会知道从它离开的地方拿起吗

    我知道这是很多问题,但任何指点都会对我有很大帮助。提前谢谢。同时,我将继续使用sameple c代码。

    我认为这在网络文件系统(NFS或CIFS)中不可靠

    如果本地主机正在修改/写入某些安装了NFS的系统,则它可以(在本地主机上)工作

    如果某个远程客户端正在修改/写入某个NFS挂载系统(由本地主机挂载),则它将无法工作(在本地主机上)


    因为NFS协议(至少是我所知道的NFS4之前的协议)是一个RPC协议,远程NFS服务器(挂载该NFS系统)无法向远程客户端发出发生某些事情的信号。

    为什么要使用?为何实际用例是什么?请编辑您的问题以改进它。您是对的。当我触摸nfs服务器上的文件时,它不工作。我需要监听一个目录,每当一个新文件出现时,我需要执行一个shell脚本,该脚本将获取文件名,生成一条引用消息,并将其发送给应用程序,然后应用程序将拾取文件并处理它。所有这些目录都是NFS。如果inotify不起作用,我还能用什么呢?除非它在NFS服务器上运行,否则任何东西都不能可靠地工作。您可以在安装的NFS系统上的客户端上运行一个
    find
    命令,但这可能会很慢(而且不太可靠)