filesystems - df -kvh 未显示可用空间 - 剩余空间在哪里

标签 filesystems mount diskspace du

在我使用的一台 Linux 开发服务器上,我发现根“/”级别的空间使用率为 100%。根文件夹有一个名为“生产”的文件夹,该文件夹与根所在的文件管理器位于不同的安装/文件管理器上。 Root 拥有接近 7.7/8 GB 磁盘空间。

我正在对所有以 MB 或 GB 为单位的文件夹进行搜索“du -chs”,并且还查找根“/”使用的总空间(不包括/生产),但我没有得到其他空间的位置是的,以及为什么当所有文件夹(不包括/生产)都显示它已 100% 使用时,它总共只有 2.8GB。

  1. 如何找回丢失的空间?

  2. 为什么 df -kvh 和 du 命令不能反射(reflect)所有已使用/未正确使用的空间(当我们说 100% 使用而 du 说根“/”级别为 2.8GB 时)?大约(7.7 已分配 - 2.8 已使用)GB 空间在哪里?

任何想法!我在这里可能缺少什么。

[root@linux-server /]# df -kvh / && echo && echo && df -kvh /production
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-root
                      7.7G  7.3G     0 100% /


Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-production
                      258G  231G   14G  95% /production
[root@linux-server /]#


[root@linux-server /]# ls -1|grep -v "production" | xargs du -chs 2>/dev/null|egrep "total|[0-9][0-9]*[MG]"
7.8M    bin
20M     boot
106M    etc
320M    lib
25M     lib64
60M     root
39M     sbin
1.9G    usr
364M    var
2.8G    total
[root@linux-server /]#

最佳答案

好的。我不知道是谁否决了这个问题,但找出导致这种行为的原因对我来说很重要。我想与社区分享答案。

因此,即使根“/”处有接近 5 GB 的可用空间,df 命令也没有显示它,可能是因为某些操作系统(bug/任何设计)。

似乎如果您杀死一个进程并且它留下了一些子进程,或者如果您杀死一个正在使用文件夹的进程并且删除该文件夹(当进程正在进行时),那么这可能会出现问题。

高级,如果系统没有以某种方式杀死子进程/pid(这不是必需的)进程,则“df”命令将无法正确反射(reflect)您的空间(因为该子进程/进程仍然以某种方式持有资源) .

现在,我是如何解决的。

我看到有一些 Jenkins (java) 进程正在运行,我杀死了它们。那仍然没有恢复我的空间(我只看到 420KB 可用),然后我执行“ps -eAf”并看到以下进程正在运行。

c123456  23019     1 99 Oct21 ?        3-07:57:35 readelf -Wa /tmp/Goslr0qbOe/content2/jdk16-solaris-1.6.0.3.tar/jdk1.6.0_03/jre/lib/sparc/libioser12.so

(上述过程是由某些实用程序启动的,可能是“pkgdiff”或由 pkgdiff 实用程序启动的某些子步骤/过程。我的一位团队成员正在比较 JDK 1.6 与 JDK 1.7 tar 文件,不知何故,上述过程仍然是即使在我杀死了主 pkgdiff/相关 PID 并在两天前删除了/tmp/Goslr0qb0e 后仍然运行)。

我一杀掉上面的PID(23019)...shenzi!我又开始工作了。

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-root
                      7.7G  2.5G  4.9G  34% /

即使在我重新启动 Jenkins 实例之后,df 现在也正确显示根“/”分区/挂载/文件管理器有 4.9G 可用空间,这证实了上述过程占用了资源(现在我假设是超出“df”命令输出的控制/范围)。

关于filesystems - df -kvh 未显示可用空间 - 剩余空间在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26539204/

相关文章:

c - 如何使用 C 程序在没有 root 访问权限的情况下挂载文件系统?

linux - RHEL Linux 中缺少/root 目录

python - 使用python的卷上剩余的跨平台空间

java - 如何将 File.getFreeSpace() 与任何文件一起使用以获取 Java 中的可用空间?

filesystems - 网络文件系统,用于存储静态图像/文件

python - 如何仅列出 Python 中的顶级目录?

filesystems - 为什么 FAT32 磁盘限制为 4GB 文件?

blackberry - 无法在 BlackBerry 上的 Micro SD 卡上写入

bash - 将设备挂载到存储在变量中的挂载点

elasticsearch - Elasticsearch forcemerge 和磁盘空间问题