2015-07-03 88 views
1

我有一个centos系统使用df报告比使用du更多的磁盘使用情况。我读过这可能发生在文件句柄尚未关闭的情况下。但是,我已经多次重新启动系统,并且lsof不会显示任何搁浅的文件句柄。df和du报告使用不同数量的文件系统

此主机镜像了我使用lftp每晚管理的另一个主机。我在这个主机上设置了apache,使用符号链接将它指向镜像目录。实际镜像数据大约是12-13 GB。基于此,14 GB的数字似乎是正确的,df报告额外的9 GB。

这可能是什么原因造成的?

$ df -h 
Filesystem  Size Used Avail Use% Mounted on 
/dev/xvda  48G 23G 23G 50%/
tmpfs   492M 112K 492M 1% /dev/shm 
$ du -hs/2>/dev/null 
14G /

回答

0

以root身份运行du。您的用户帐户无法访问的文件将不会包含在总和中,因此您必须以root身份运行以查看磁盘上所有文件的总和。

+1

或者至少不要丢弃权限被拒绝的错误消息:'2>/dev/null' – msw

+1

这应该是我的第一个线索,当我将其添加到命令。它几乎击中我的脸,但我仍然错过了它。还是要谢谢你的帮助。 – Kylos

1

在该驱动器上运行fsck

df会给你磁盘的未分配块的数量块,du报告可以通过文件系统访问的块数。你可以看到这些方法的差异,因为df是瞬时的(查找数字),du需要的时间量与它必须检查的文件数量(精确的i节点)成正比。

可以有9GB的空间没有空余数量,而没有一个文件名通过它到达他们。这是文件系统损坏的常见形式。

+0

我跑fsck并没有得到任何提示修复。它给出了这个状态:/ dev/xvda:150374/5549696文件(38.9%不连续),6014203/12517376块 – Kylos

+0

和6014203/12517376约为50%。所以DF可能是正确的。我从来不会用du来计算未被使用的空间;这不是它的工作。 – msw

+0

是的,我注意到了。根据我镜像的数据量,我应该有大约14GB。我正在使用du来试图找到负责9 GB的文件。有趣的是,当我使用救援分区并安装我的卷时,du显示23 GB,但是当我正常安装时,它显示14 GB。 – Kylos