前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux找不到占用磁盘的文件 - df/du的区别

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

作者头像
十毛
发布2019-03-27 14:45:13
5.3K0
发布2019-03-27 14:45:13
举报

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

最终原因

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

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

问题展示

代码语言:javascript
复制
[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的空间占用

问题定位

查看打开的文件列表

代码语言:javascript
复制
[tenmao@vm ~]$ lsof | grep deleted
less      12998          (省略)  /home/tenmao/test4 (deleted)

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

解决问题

停掉或重启进程12998

代码语言:javascript
复制
kill 12998
代码语言:javascript
复制
[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的结果 (这也很符合预期,因为文件还是交给文件系统来管理的)

参考

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019.01.14 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 最终原因
  • 问题展示
  • 问题定位
  • 解决问题
  • 一个猜测
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档