好吧,这是一个让我完全困惑的问题:
df -h
Dateisystem Größe Benut Verf Ben% Eingehängt auf
/dev/sda2 3,8G 1,5G 2,2G 41% /
/dev/sda1 122M 13M 103M 11% /boot
tmpfs 1014M 0 1014M 0% /dev/shm
/dev/sdb1 1016M 866M 150M 86% /srv
然而:
du -hs /srv
55M /srv
仅供参考:
mount | grep srv
/dev/sdb1 on /srv type xfs (rw)
86% 的人给了我一封警告电子邮件(这是有意的),之后我删除了/srv
.这是几个小时前的事了。
使用du
,我得到了该分区上我认为正确的数据量。然而,df
似乎并没有明白这一点。为什么? (这有点烦人,因为我仍然会定期收到基于该输出的警告电子邮件。)
不确定这是否重要,但我使用的是 CentOS 版本 5.11(最终版)的服务器。
答案1
df
计算文件系统分配的块,du
使用每个文件的大小信息。差异可能有多种原因:
1) 仍由应用程序打开的未链接(已删除)的文件。 lsof +aL1 <filesystem>
将帮助您识别流程。
2) 挂载点下的文件隐藏到du
.debugfs
可以帮助你。
$ sudo debugfs
debugfs 1.42.12 (29-Aug-2014)
debugfs: open /dev/<the / file system device>
debugfs: cd /boot
debugfs: ls -l
1966081 40755 (2) 0 0 4096 26-May-2016 16:28 .
2 40555 (2) 0 0 4096 11-May-2016 10:43 ..
1974291 100644 (1) 0 0 0 26-May-2016 16:28 bob <---<<< /boot/bob is hidden by /boot fs
3)稀疏文件看起来比实际更大。未分配的块不计入文件大小,df
但计入文件大小。
请注意,硬链接不会骗人du
答案2
如果应用程序仍打开文件,则在进程结束之前不会释放磁盘空间。找出正在使用的内容/srv
并停止/重新启动它们