为什么“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 !!