无法在 Linux 服务器上 rm -rf .nfs0000000008547f6500007f62 文件

无法在 Linux 服务器上 rm -rf .nfs0000000008547f6500007f62 文件

当我做

rm -rf directory

它显示如下信息:

rm: can't delete directory/.nfs0000000008547f6500007f62
ressource occupied 

我不知道为什么。

答案1

您的系统可能正在使用 NFS。当文件被删除但仍被应用程序使用时,NFS 客户端实现会创建这些目录。

http://nfs.sourceforge.net/#faq_d2

答:Unix 应用程序经常打开一个临时文件,然后取消链接。这样做的目的是使该文件在文件系统名称空间中对任何其他应用程序都不可见,这样系统就会在应用程序退出时自动清理(删除)该文件。这被称为“上次关闭时删除”,是 Unix 应用程序的传统。

由于 NFS 协议的设计,无法将文件从名称空间中删除,但仍由应用程序使用。因此,NFS 客户端必须使用协议中已存在的内容来模拟这种情况。如果打开的文件被取消链接,NFS 客户端会将其重命名为类似于“.nfsXXXXX”的特殊名称。这会在文件仍在使用时“隐藏”它。这被称为“愚蠢的重命名”。请注意,NFS 服务器与此行为无关。

当客户端上的所有应用程序都关闭了愚蠢重命名的文件后,客户端会自动删除服务器上的文件,从而完成取消链接。通常,这是有效的,但如果客户端在删除文件之前崩溃,则会留下 .nfsXXXXX 文件。如果您确定使用这些文件的应用程序不再运行,则可以安全地手动删除这些文件。

NFS 版本 4 协议是有状态的,实际上可以支持上次关闭时删除。遗憾的是,没有一种简单的方法可以做到这一点,同时保持与版本 2 和 3 访问器的向后兼容。

如果您重新启动应用程序或服务器,则可以删除这些文件(因为它们不再使用),除非同时创建了新的文件。

相关内容