在我的CentOS服务器上,这两个命令都显示了不同的磁盘使用情况,df显示了这个输出:
Filesystem Size Used Avail Use% Mounted on /dev/xvda2 16G 14G 952M 94% / /dev/xvda6 996M 258M 687M 28% /tmp /dev/xvda3 16G 6.5G 8.3G 45% /var /dev/xvda1 251M 25M 213M 11% /boot tmpfs 4.0G 0 4.0G 0% /dev/shm
和du -sh表演
6.9M /bin/ 15M /boot/ 123M /etc 212K /home/ 233M /lib 27M /lib64/ 16K /lost+found/ 8.0K /media/ 8.0K /mnt/ 399M /opt/ 959M /root/ 35M /sbin/ 8.0K /srv/ 0 /sys/ 2.5G /usr/ 4.2G total
还尝试使用NCDU工具,该工具仅报告5.6GB的使用情况。
如何find隐藏的磁盘空间?
看看你有没有被删除的文件仍在使用中
lsof | grep deleted
有一个很长的解释可以发现在任何数量的博客网上快速search,但基本的要点是这样的:
如果我创build一个1 GB的稀疏文件, du将显示1 GB,但是df将显示零用法。 如果我在某些程序中打开了一个1 GB的文件并将其删除,那么df仍然会显示1 GB的使用情况,直到所有对inode的引用都closures,但是du将永远不会find要显示的文件。
df是文件系统使用情况,包括文件和其他支持日志等文件的结构。du只显示文件大小总和,大多数情况下会less一些。 区别取决于文件系统使用的时间,文件系统本身等等。