我想知道我的 VPS 的磁盘空间,尽管文件夹du
工作正常
$ du -sh /home/
325M /var/
但试图获得整个 vps 却给了我这个结果。
[root@user/]# du -sh
du: cannot access `./proc/18097/task/18097/fd/4': No such file or directory
du: cannot access `./proc/18097/task/18097/fdinfo/4': No such file or directory
du: cannot access `./proc/18097/fd/4': No such file or directory
du: cannot access `./proc/18097/fdinfo/4': No such file or directory
1.3G .
我假设空间是1.3G,但是为什么会出现错误?我如何解决它?
答案1
你不需要修复它——它没有坏。这些是对不可用的内核文件对象的引用du
- 这是涉及文件描述符的常见竞争条件。无论如何,这些不占用空间(也没有/proc
就此而言,也没有)因为它们不在磁盘上 - 它们只是对内核文件描述符的临时引用。他们要么引用匿名管道/套接字- 因此无法,stat
因为它们没有文件名 - 或者在du
注意到它们的时间和尝试它们的时间之间stat
,它们要么已不复存在,要么du
从一开始就没有权限这样做。它们很可能是du
自己的文件描述符。
但是,您的命令可能存在问题,因为它处理多个文件系统挂载。这可能不是您的意图,因此您可以使用:
du -shx
...仅寻址当前工作目录的根挂载上存在的文件。因为/proc
它是一个完全独立的文件系统,并且单独安装以/
运行该文件系统,从而/
排除/proc
所有其他不属于的文件系统。
另外,如果您确实想要列出多个文件系统挂载,您可以这样做:
du -sh 2>/dev/null