我有一个应用程序正在运行(在 RHEL5 上),它将数据流式传输到 NFS 共享。最近,我看到它的工作目录中出现了很多 .nfsXXXX...(xxx 是十六进制数),应用程序每小时都会在其中写入文件,然后将它们移动到不同的文件名。
这些文件是什么?这是否表明出现了问题?如何进一步诊断?
答案1
一切正常。这是您的 NFS 客户端试图在其自身操作能力范围内保持正确的“稍后关闭时删除”unix 行为。此 NFS 行为称为“愚蠢的重命名”:
http://nfs.sourceforge.net/#faq_d2
NFSv4.1 将通过 OPEN4_RESULT_PRESERVE_UNLINKED 摆脱这种行为:
答案2
Adamo 是正确的。确保您的应用程序在处理完文件后关闭文件。
如果您由于某种原因无法修复该应用程序,您可以创建一个 cron 作业来定期删除这些文件。
答案3
删除文件之前,请确保文件 I/O 已关闭。
大多数网络文件服务器都会生成诸如.nfsXXXXXX
和/或 之类的隐藏文件.smbXXXXXX
。这些隐藏文件将在未关闭文件 i/o 处理程序的进程退出后被删除。