美文网首页技术资源
消失的硬盘空间:du与df统计不一致的解决方法

消失的硬盘空间:du与df统计不一致的解决方法

作者: 我只是一个小白木木 | 来源:发表于2018-10-23 10:46 被阅读0次

突然接到Zabbix的告警邮件,说硬盘空间告警,赶紧登上服务器,用df查看硬盘利用率,发现已用空间果然较低,如下:

加上-h更容易看明白空间大小

df -h
输出结果如下:

/dev/sdb1       2.2T  1.8T  488G  79% /home

继续分析“/home”的占用分布,如下:

只查看超过1G的目录

du -h --max-depth=1 /home/yiifaa|sort -n -k1

输出结果如下:

位置 占用大小

./logs  11G
./mis_analysis  51G
./opdir 253G
./openresty 5.3G
./sdk_collect   788G
./sdk_data  232G
总计  1340.30G

差距竟然达到了500G,初步以为是其他用户使用了其他的空间,赶紧切换到root用户,再次进行分析:

切换到根用户

su root

再次查看/home的占用情况

du -h --max-depth=1 /home|sort -n -k1

输出结果如下:

1.3T    /
1.3T    /home
3.8G    /usr
4.0K    /cgroup
4.0K    /media
4.0K    /misc
4.0K    /mnt
4.0K    /net
4.0K    /selinux
4.0K    /srv
4.1G    /var
5.6M    /tmp
6.7M    /share
9.0M    /bin
10M     /root
16K     /lost+found
16M     /sbin
18M     /libexec
23M     /opt
28M     /lib64
34M     /etc
77M     /boot
200K    /dev
290M    /lib

两相对照,du的两次统计数据基本相同,那么问题确定了,硬盘空间真的消失了500G。

翻阅了很多文档,最后基本可以确认,硬盘空间消失是因为删除的文件被其他程序引用,导致空间无法回收,所以解决的方法也很简单,找到引用文件的相关进程,然后停掉进程让空间回收即可,查找引用已删除文件的方法如下:

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

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

得到如下的结果:

python     9100   xiaoju    4w      REG               8,17 506684182703      11467 /home/xiaoju/sec_audit_log/biz/sec_audit.log (deleted)
python     9100   xiaoju    3w      REG               8,17 506684182703      11467 /home/xiaoju/sec_audit_log/biz/sec_audit.log (deleted)
python     9100   xiaoju   12w      REG               8,17 506684182703      11467 /home/xiaoju/sec_audit_log/biz/sec_audit.log (deleted)
python     9100   xiaoju   11w      REG               8,17 506684182703      11467 /home/xiaoju/sec_audit_log/biz/sec_audit.log (deleted)
python     9100   xiaoju   10w      REG               8,17 506684182703      11467 /home/xiaoju/sec_audit_log/biz/sec_audit.log (deleted)

很容易就找到了出问题的进程号——9100,结束掉相关进程,再次用df查看磁盘空间,发现统计数据终于一致了,如下:

kill 9100
df -h

df统计结果:

Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       2.2T  1.3T  965G  57% /home

其他

是的,是的,如果你的服务器没有高可用性要求(非在线服务器),那么重启就是最简单直接的解决办法

原文:https://blog.csdn.net/yiifaa/article/details/78847871
可参考:https://blog.csdn.net/peterxiaoq/article/details/78676330?utm_source=blogxgwz1
https://blog.csdn.net/lufeisan/article/details/53149427?utm_source=blogxgwz0

相关文章

  • 消失的硬盘空间:du与df统计不一致的解决方法

    突然接到Zabbix的告警邮件,说硬盘空间告警,赶紧登上服务器,用df查看硬盘利用率,发现已用空间果然较低,如下:...

  • 常用 Linux 命令集(多图)

    1、df df 查看硬盘空间的使用情况 查看本机硬盘空间的使用情况: 2、du du 查看 目录 和 文件 所占磁...

  • 磁盘df与du 磁盘对比结果不一致问题

    现象说明 df与du的结果不一致,现象说明 df -h 显示磁盘占用满 du -sh * / 显示磁盘只用了12G...

  • du和df统计的磁盘分区大小不一致

    Linux下查看磁盘空间使用情况,最常使用的是du和df。有一次du和df统计的磁盘分区大小不一致,这是为什么呢?...

  • df -h和du -sch*结果不一致

    du -sch*在末尾会统计总空间,通过和df -h的对比,发现之前删除的空间并没有得到释放,使用空间的数值不一致...

  • 查看文件或文件夹占用空间

    查看硬盘空间 df硬盘50GB全部满了 查看文件或文件夹占用空间, du -sh /*发现是var占用最多38g ...

  • Linux命令收集

    df -h 统计文件系统容量du -sm * | sort -n //统计当前目录大小,并按大小排序 文件复制命...

  • df\du

    du:disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被...

  • df/du

    显示文件系统磁盘空间使用情况-h以人类可读的方式显示 KB MB GB du显示指定的目录及子目录已使用的磁盘空...

  • df and du

    df (show all disk usage) df -T: show typesdf -h: human r...

网友评论

    本文标题:消失的硬盘空间:du与df统计不一致的解决方法

    本文链接:https://www.haomeiwen.com/subject/rbmozftx.html