在Linux NFS共享安装上创建文件时,客户端是Linux或Mac机器。文件的存在与否是下一步操作的关键,但检查并不总是返回正确的结果:
例如我在perl中这样做,这仍然不能正常工作,尤其是mac机器
write_key_file(); # write a file that must be checked before proceeding
当文件存在时,以下检查不能始终返回true
问题 - perl中的此命令未在NFS系统中返回正确的状态:
if( -e $file){}
无法解决的无法解决的问题:
sleep(5); # wait 5 seconds
system("ls -ltr"); # force to cache?
if(-e $file){}
我不打算检查这样的每个文件,但有一些关键的地方,以获得正确的文件状态是很重要的。
我们是否有更好的方法在特定目录上的特定文件上强制刷新nfs缓存?谢谢。
我不确定这是一个XY问题,但有一些最薄弱的问题都可以解决。
A - NFS客户端设置
如果在这个阶段有解决方案,那就太好了!
B - exit_code或返回写入功能代码
$exit_code = write_key_file();
它的问题,而不是所有的写作都在代码块的范围内。这只能解决部分问题。
C - 禁用特定文件或目录的NFS缓存以进行文件检查
我需要确定这是可能的以及如何?如果没有,为什么?
我对所有可能的解决方案,没有解决方案或其他可能性持开放态度。