我正在尝试评估我的 unix 服务器上的磁盘空间分布在哪里。为了查看磁盘空间的当前状态,我正在运行:
df -h
但是当尝试评估什么占用了磁盘空间并运行时/
du -skh * | sort -n
总使用空间为 956GB,但我看到的分区累计占用空间小于 730GB。这些数字根本对不上号。这是怎么回事?剩下的约 200GB 在哪里?
注意 - 大部分磁盘空间被 MySQL 使用。一张巨大的 InnoDB 表和几个较小的表。
答案1
df
将向超级块询问分配了多少空间,而du
将计算所有可见文件的大小。这两个不同的指标将导致df -h
和du -sxh /
彼此不一致。
如果您担心可用空间,du
应该更准确(前提是您不会耗尽文件系统上的可用块)。
进一步解释:http://linuxshellaccount.blogspot.com/2008/12/why-du-and-df-display-different-values.html
答案2
您du
是否以 的身份运行该命令root
?如果不是,您将无法进入目录,/root
因为存在权限问题。因此,您无法将这些目录中的文件大小相加。这也许可以解释为什么这个数字较低。此外,我相信该df
命令将显示文件系统的总大小(例如 inode 大小 + 文件大小),而du
只会显示文件的大小。这会使df
数字更大。