为什么“df”和“du”命令显示不同的磁盘使用情况?

我无法在我的电脑上访问ubuntu系统,错误消息:“ 系统在低图形模式下运行 ”,我尝试了一些我从互联网上搜索的命令。

我发现问题似乎没有可用的磁盘空间。 我用“ df ”和“ du ”命令检查,结果如下:

du -j --max-depth=1 23G ./home 3.3G ./usr ...... 28G 

 df -Th filesystem Type size used available use% mounted on /dev/sda5 ext4 68G 68G 0 100% / 

如何清理系统以获得更多磁盘空间?

您很可能知道您可以删除某些应用程序仍在使用的文件,并且对于此应用程序,它仍然可用。 这是因为/ proc / filesystem中的文件描述符保持打开状态。

因此,如果已经删除的文件有这样的开放描述符,则它们占用的空间被认为是df使用的空间(并且df是正确的),但是由于不再存在与它们相关联的文件名,因此du不能将它们考虑在内。

您可以找到所有未链接但保持打开的文件:

 # lsof | grep '(deleted)' 

我该如何删除链接? – Vikas Hardia 2014年8月22日5:46

您必须找到保存文件句柄的进程。 使用Dmitry Alexandrov的命令,在那里你可以看到进程和pid。 在我们的案例中,“旧”清漆日志文件是空间杀手。

 # lsof | grep '(deleted)' [...] varnishlo 13978 varnishlog 3w REG 252,1 318448027646 5926973 /var/log/varnish/varnish.log.1 (deleted) apache2 16801 www-data 2w REG 252,1 64550 13110120 /var/log/apache2/error.log.1 (deleted) [...] # service varnishlog stop [or if there is no service script] # kill -11 13978 (the second number of the lsof command is the pid) [or may be] # kill -9 13978 

如果您的计算机上有恶魔或其他服务,请不要忘记再次启动服务或处理。 如果可以,只需重新启动计算机;)

好的,让我们查看手册页:

df – 报告文件系统磁盘空间使用情况

du – 估计文件空间使用情况

这两个工具是针对不同的建议。 虽然df用于显示文件系统使用情况,但du用于报告文件空间使用情况。 du工作于文件,而df在文件系统级别工作,报告内核所说的可用内容。 继续阅读du manpage支持:

为目录递归地汇总每个FILE的磁盘使用情况。

它说du适用于文件。

df显示包含每个文件名参数的文件系统上可用的磁盘空间量。 如果未指定文件名,则会显示所有当前安装的文件系统上的可用空间。

这里说df不关心文件而是文件系统本身。

简单地说:

你没有root权限就运行了du 。 因此无法检查/proc/mnt等文件夹中的可用空间。

df显示了总使用空间和空闲空间。

因此,当您检查Linux根文件系统时,请将du报告作为最终报告。

 df 

总结可用磁盘空间

它显示可用的磁盘空间量。

 du 

总结磁盘使用情况。

它显示使用的磁盘空间量。

没什么好混淆的:看看:=

1)du ==磁盘使用情况
这些文件使用了多少磁盘空间?

2)df ==无磁盘
我们有多少可用磁盘空间?

此外,系统运行在低图形模式’ 这里 ‘

我做到了
sudo du -hxa / | egrep '^[[:digit:]]{1,1}G[[:space:]]*'

它确切地说明了我看到的21GB的巨大差异!
有问题的文件是/ swap文件,如果21GB !!