Linux 根分区的 df 和 du 大小不同

Linux 根分区的 df 和 du 大小不同

在我的 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 只显示文件大小总和,通常会较小。差异取决于文件系统的使用时间、文件系统本身等。

相关内容