Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了filesystems – NFS – 以编程方式检测远程创建的文件?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在尝试监视NFS共享并通过远程系统上运行的进程检测文件的创建.问题是文件创建后检测不起作用,我的脚本仍然认为没有文件.如果有人在目录中执行ls,或者我在后台运行一个单独执行ls的单独进程,那么脚本将会检测到该文件是否存在.但是,将“ls the directory”功能添加到主脚本中是行不通的:它仍然永远不会检测到文件是否存在,直到外部进程导致目录列表内容以某种方式刷新. 这是一个说明问题的测
我正在尝试监视NFS共享并通过远程系统上运行的进程检测文件的创建.问题是文件创建后检测不起作用,我的脚本仍然认为没有文件.如果有人在目录中执行ls,或者我在后台运行一个单独执行ls的单独进程,那么脚本将会检测到该文件是否存在.但是,将“ls the directory”功能添加到主脚本中是行不通的:它仍然永远不会检测到文件是否存在,直到外部进程导致目录列表内容以某种方式刷新.

这是一个说明问题的测试用例:

watch_file.pl:

#!/usr/bin/perl -w
my @stat;
while (1) {
    @stat = stat("/nfs/test");
    last if ($stat[1] && $stat[1] > 0);
}

在“host-A”上运行该简单脚本:

host-A% ./watch_file.pl &
[1] 9312

切换到“host-B”并创建文件

host-B% touch /nfs/test

…回到“主机-A”,程序还没有退出

host-A%

…仍然在“host-A”上,在目录中执行ls,然后脚本会看到该文件

host-A% ls -a /nfs
.  ..  test
host-A%
[1]+  Done                    ./watch_file.pl &
host-A%

有没有人知道一个简单的修复或解决方法,这比在后台运行脚本每10秒使用一个NFS目录要少?

解决方法

认情况下,大多数NFS客户端缓存目录信息60秒.

使用Noac选项在客户端上挂载NFS共享以禁用属性缓存,或使用acdirmin = 0,acdirmax = 0来禁用目录缓存.

大佬总结

以上是大佬教程为你收集整理的filesystems – NFS – 以编程方式检测远程创建的文件?全部内容,希望文章能够帮你解决filesystems – NFS – 以编程方式检测远程创建的文件?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。