41、解决du与df统计不一致的解决方法

怎甘沉沦 提交于 2020-02-15 23:49:18


41.1、案例说明:

通过df -hT和du -sh /、du -h --max-depth=1 /命令

发现磁盘的使用不量不一致,使用'df -hT'命令查看磁盘的使用量要

比使用'du -sh /'命令查看磁盘用量要大;

41.2、原因:

硬盘空间消失是因为删除的文件被其他程序引用,导致空间无法回收,所以解

决的方法也很简单,找到引用文件的相关进程,然后停掉进程让空间回收即可;

41.3、查找引用已删除文件:

lsof | grep deleted | sort -nr -k7 | less

# 按已删除文件大小逆向排序

41.4、结束进程:

kill -9 "PID号"

41.4、补充:

du与df统计不一致的其它情况:

1、隐藏文件:

linux系统把文件名以.(点号)开头的文件视为隐藏文件,而类似bash里*这样的操作符是不会匹配隐藏文件的,所以如果根目录下有个较大

的隐藏文件的话,是不会被'du -sh /'命令统计到的,解决办法就是'cd /、du -sh \.[^.]*';

2、非空目录被mount:

一般挂载其他分区的时候都是建议mount到一个空目录的,那么如果mount到一个非空的目录,情况会怎么样呢?比如/mnt目录本来里面

是有文件的,然后执行了sudo mount /dev/sda6 /mnt,其实这个mount命令完全能正常执行,被mount的分区也能正常访问,只是原先在

/mnt里的文件,现在已经访问不到了,包括du也看不到大小了,但是磁盘空间却还是被占着,因为如果你 umount /mnt 以后,原来的文件

都还会回来的。

3、空洞文件:

一个文件的大小和所占磁盘空间也不一定完全一致,比如某个程序一直打开着一个叫log的文件在写,而中间有人用 >log 命令清除了log的

内容,就会产生这样的文件。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!