小编Axe*_*auf的帖子

确定 NFS 共享上的文件是否正在使用

设想:

我们正在使用 NFS 共享来允许客户上传原始视频材料。然后从 (NFS) 服务器上的目录轮询文件以便进行处理。由于我们不想处理尚未完成上传的文件,因此我想在服务器端脚本(Bash)中确定该文件是否仍在使用中。

由于该男子页说,双方fuserlsof -N应允许对NFS共享检测正在使用的文件。但是,我没有“看到”服务器上正在使用的文件,这会导致稍后处理中的文件损坏。

设置:

我的 NFS/etc/exports包含这些设置(UID 和 GID 是服务器上共享目录的所有者,换行以便更好地显示):

/export/foo 10.3.2.0/255.255.255.0 
    (rw,sync,no_subtree_check,all_squash,anonuid=1001,anongid=1001)
Run Code Online (Sandbox Code Playgroud)

客户端使用以下命令挂载此共享:

10.3.2.197:/export/foo  /data002/  nfs  defaults        0 0
Run Code Online (Sandbox Code Playgroud)

服务器是使用“nfs-kernel-server 1:1.2.0-4ubuntu4”的 Ubuntu 10.04,客户端是 SLES 10 SP2

当我在客户端(在共享目录内)打开一个文件时,使用

echo "Hello" > test.txt && tail -f foo.txt
Run Code Online (Sandbox Code Playgroud)

然后检查(仍在客户端上)文件是否正在使用中

fuser foo.txt
Run Code Online (Sandbox Code Playgroud)

我可以看到该文件正在使用中。但是,在服务器端(fuser foo.txtlsof -N | grep foo.txt)检查时,我没有得到任何使用信息。

如果当前正在使用 NFS 共享上的文件(无论是本地还是远程),我如何检查服务器?或者我在当前的设置中做错了什么?

nfs usage

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

nfs ×1

usage ×1