服务器磁盘空间计算 - 错误没有这样的文件或目录

服务器磁盘空间计算 - 错误没有这样的文件或目录

当我做一个

du -h --max-depth=1

在我的服务器中出现以下错误,

du: cannot access `./proc/13379/task/13379/fd/4': No such file or directory
du: cannot access `./proc/13379/task/13379/fdinfo/4': No such file or directory
du: cannot access `./proc/13379/fd/4': No such file or directory
du: cannot access `./proc/13379/fdinfo/4': No such file or directory

如果我做

rm -rf /proc/13379/* 

删除文件夹时它会不断以不同的 pid 返回。

我如何知道哪个进程正在使用这个以及这些文件链接存在什么问题?

答案1

实际上,“/proc/”文件夹用于保存进程信息并将其本身链接到 irq、文件描述符和其他内核源(预计会看到循环链接并依赖于进程本身的操作)。

因此,当进程正在运行时无法删除,因为进程占用了此文件夹上的资源。此外,PID 在“/proc/{PID}”上表示,因此您无需使用任何命令(如 lsof)来查找使用该文件链接的进程。在上述情况下,“13379”是您要查找的进程 ID。

答案2

如上所述,/proc 是机器上运行的进程的管理信息。它是一个虚拟文件系统,不占用任何磁盘空间,只包含由内核生成或由内核读取的符号链接和“文件”(其中一些是可写的)。

但是,这些错误消息完全无害。发生的事情是,du收集了 /proc 中的目录列表(即进程 ID),当它试图进入目录时,甚至在目录内部时,进程就会退出,其对应的目录也会消失。这让人感到困惑du

为了避免此类错误,您可以用 跳过 /proc --ecxlude=/proc,或使用其他选项,如--one-file-system--exclude-from=FIlE这样,您还可以跳过 /dev、/sys 等。

相关内容