![AIX 不会停止创建随机 .nfsXXXX 文件](https://linux22.com/image/20041/AIX%20%E4%B8%8D%E4%BC%9A%E5%81%9C%E6%AD%A2%E5%88%9B%E5%BB%BA%E9%9A%8F%E6%9C%BA%20.nfsXXXX%20%E6%96%87%E4%BB%B6.png)
我试图删除一些文件和文件夹,但无法删除,因为系统不断重新创建这些文件。
所有这些文件都被命名为.nfsXXXX
,其中XXXX
是一些随机的 4 个字符的十六进制数。每当我删除其中一个文件时,它都会创建另一个名称不同但内容相同的文件。
这种情况发生在几个不相关的目录中。可能是什么原因造成的?我该如何解决?
答案1
逐字引用自https://uisapp2.iu.edu/confluence-prd/pages/viewpage.action?pageId=123962105:
在 linux/unix 下,如果删除当前正在运行的进程仍然打开的文件,该文件并没有真正被删除。一旦进程关闭文件,操作系统就会删除文件句柄并释放磁盘块。当打开和删除的文件位于 NFS 安装的文件系统上时,此过程会稍微复杂一些。由于打开文件的进程在一台计算机上运行(例如办公室或实验室中的工作站),并且文件位于文件服务器上,因此两台计算机必须有某种方式来通信有关该文件的信息。 NFS 执行此操作的方式是使用 .nfsNNNN 文件。如果您尝试删除其中一个文件,并且该文件仍处于打开状态,它只会以不同的编号重新出现。因此,为了完全删除该文件,您必须终止打开该文件的进程。
如果您想知道哪个进程打开了该文件,可以使用“lsof .nfs1234”。但请注意,这仅适用于运行打开文件的进程的计算机。因此,如果您的进程在一台机器上运行(例如 bobac),并且您在其他 burrow 机器(例如 silo 或 prairiedog)上运行 lsof,则您将看不到任何内容。
答案2
这些 .nfsXXXX 文件是 NFS 操作的正常部分。我不会重复 @Keith Thompson 写的内容,但要做的一件事是不要立即删除它们,设置一个 cron 作业来删除它们,如果它们在一段时间没有被访问的话:
find dir .name .nfs\* -atime +3 -delete
答案3
前面的答案还不够。 AIX 下的问题是,即使没有更多进程在使用库,它仍然可以加载到内存中。在这种情况下,删除 nfs 文件系统上的库文件时也会遇到同样的问题。
到目前为止,我发现的唯一方法是使用 root 用户启动命令“slibclean”,以从内存中卸载当前未使用但已加载的库,并能够删除库文件。
答案4
.nfsXXXX
另一种选择是从服务器端删除文件。