确定NFS共享上的文件是否正在使用中
场景: 我们使用NFS共享来允许客户端上传原始video素材。 然后从(NFS)服务器上的目录轮询文件以进行处理。 由于我们不想处理尚未完成上传的文件,因此我想在服务器端脚本(Bash)中确定文件是否仍在使用中。 如手册页所述, fuser和lsof -N应允许检测NFS共享中正在使用的文件。 但是,我不会“看到”在服务器上使用的文件,这会在处理中稍后导致损坏的文件。 build立: 我的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) 客户使用: 10.3.2.197:/export/foo /data002/ nfs defaults 0 0 服务器是使用“nfs-kernel-server 1:1.2.0-4ubuntu4”的Ubuntu 10.04,客户端是SLES 10 SP2 当我在客户端(在共享目录中)打开一个文件时,使用 echo "Hello" > test.txt && tail -f foo.txt 然后检查(仍然在客户端上)文件是否在使用中 fuser foo.txt 我可以看到该文件正在使用中。 但是,当检查服务器端( fuser foo.txt和lsof -N | grep foo.txt )我没有得到任何使用信息。 如何检查NFS服务器上的文件是否正在使用(无论是本地还是远程)? 或者我在当前的设置中做错了什么?