在我的 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。
如何查找隐藏的磁盘空间?
答案1
查看是否有任何已删除的文件仍在使用
lsof | grep deleted
答案2
在许多博客文章在线快速搜索,但基本要点如下:
如果我创建一个 1 GB 的稀疏文件,du
则将显示 1 GB,但df
将显示零使用量。如果我在某个程序中打开了一个 1 GB 的文件并将其删除,则df
在关闭对 inode 的所有引用之前,仍将显示 1 GB 的使用量,但du
永远找不到显示它的文件。
答案3
df 是文件系统使用情况,包括文件和支持文件的其他结构,如日志等。du 只显示文件大小总和,通常会较小。差异取决于文件系统的使用时间、文件系统本身等。