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