Linux找不到占用磁盘的文件 - df/du的区别

最近经常收到磁盘空间不足的告警,但是去定位可删除文件的时候,发现了一个问题,df显示磁盘满了,但是du计算得到的磁盘总空间却只占到磁盘空间的50%左右。 经过查询后终于找到原因

最终原因

文件如果在被某个进程打开后删除,还会存在文件系统中,只是标记为(deleted)状态。

df统计是文件系统(FileSystem)中的空闲磁盘大小,这个数值可以在文件系统中直接得到,所以命令执行很快
du统计的目录及文件占用的磁盘大小,如果文件删除(被标记为deleted状态)则不统计

问题展示

[tenmao@vm ~]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G   18G   72K 100% /
devtmpfs                 898M     0  898M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M  9.4M  901M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/sda1                497M  171M  327M  35% /boot
tmpfs                    182M     0  182M   0% /run/user/1000

[root@vm /]# du -h --max-depth=1
146M      ./boot
0         ./dev
0         ./proc
9.4M      ./run
0         ./sys
36M       ./etc
44K       ./root
4.0K      ./tmp
344M      ./var
2.6G      ./usr
11G       ./home
0         ./media
0         ./mnt
136M      ./opt
0         ./srv
14G       .

df显示磁盘占用100%(磁盘一共18G),du命令却只查找到14G的空间占用

问题定位

查看打开的文件列表

[tenmao@vm ~]$ lsof | grep deleted
less      12998          (省略)  /home/tenmao/test4 (deleted)

可以看到文件/home/tenmao/test4被进程12998打开后, 又被其他进程或命令删除,在lsof命令中显示为deleted状态

解决问题

停掉或重启进程12998

kill 12998
[tenmao@vm /]$ df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   18G   14G  4.0G  78% /
devtmpfs                 898M     0  898M   0% /dev
tmpfs                    910M     0  910M   0% /dev/shm
tmpfs                    910M  9.4M  901M   2% /run
tmpfs                    910M     0  910M   0% /sys/fs/cgroup
/dev/sda1                497M  171M  327M  35% /boot
tmpfs                    182M     0  182M   0% /run/user/1000

停掉进程后,df命令与du命令的大小基本一致了。

一个猜测

创建文件的时候,如果df显示磁盘满,但是du显示有空间,是否可以创建文件?

结果显示:创建文件的时候,判断磁盘空间使用但是df的结果
(这也很符合预期,因为文件还是交给文件系统来管理的)

参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容