解决 UNIX 服务器磁盘空间不足的问题

解决 UNIX 服务器磁盘空间不足的问题

我正在尝试评估我的 unix 服务器上的磁盘空间分布在哪里。为了查看磁盘空间的当前状态,我正在运行:
df -h

在此处输入图片描述

但是当尝试评估什么占用了磁盘空间并运行时/

du -skh * | sort -n

在此处输入图片描述

总使用空间为 956GB,但我看到的分区累计占用空间小于 730GB。这些数字根本对不上号。这是怎么回事?剩下的约 200GB 在哪里?

注意 - 大部分磁盘空间被 MySQL 使用。一张巨大的 InnoDB 表和几个较小的表。

答案1

df将向超级块询问分配了多少空间,而du将计算所有可见文件的大小。这两个不同的指标将导致df -hdu -sxh /彼此不一致。

如果您担心可用空间,du应该更准确(前提是您不会耗尽文件系统上的可用块)。

进一步解释:http://linuxshellaccount.blogspot.com/2008/12/why-du-and-df-display-different-values.html

答案2

du是否以 的身份运行该命令root?如果不是,您将无法进入目录,/root因为存在权限问题。因此,您无法将这些目录中的文件大小相加。这也许可以解释为什么这个数字较低。此外,我相信该df命令将显示文件系统的总大小(例如 inode 大小 + 文件大小),而du只会显示文件的大小。这会使df数字更大。

相关内容