linux查询 home所剩空间,df空间占用已满,但du查看home目录空间占用却很少

您所在的位置:网站首页 linux怎么查分区 linux查询 home所剩空间,df空间占用已满,但du查看home目录空间占用却很少

linux查询 home所剩空间,df空间占用已满,但du查看home目录空间占用却很少

2023-09-13 06:30| 来源: 网络整理| 查看: 265

一,背景

一大早研发过来报错,home目录之前分配10G空间,使用率100%,自己先尝试了扩容到50G,今天早上来了发现又100%了。。。

os:Red Hat Enterprise Linux Server release 6.6 (Santiago)

二,问题检测

登录问题服务器,执行命令  df -h,发现/home目录已占满,但是进入home,执行du -s -h发现只使用了1.4G的空间

28f639914a8eba8e10e62d7d60b29480.png

初步怀疑是删除文件未释放导致的,执行命令 lsof |grep deleted

ab0ffc30ce8879851e3e61df53bd2c07.png

发现tomcat下的日志文件占用过大。。。。应该是开发人员删除了日志文件,但并未重启服务导致的。

三,解决问题

由于是测试环境,所以直接kill掉了服务,再次查看,空间已释放,目录使用率已恢复正常。

a65040ac9009f81a94175fe95d0d21f9.png

四,小结

脑补一下df du lsof

df命令使用的是statfs这个系统调用,直接读取分区的超级块信息获取分区使用情况。它的数据是基于分区元数据的,所以只能针对整个分区。由于df直接读取超级块,所以运行速度不受文件多少影响。

du命令会对待统计文件逐个调用fstat这个系统调用,获取文件大小。它的数据是基于文件获取的,所以有很大的灵活性,不一定非要针对一个分区,可以跨越多个分区操作。如果针对的目录中文件很多,du速度就会很慢了。

lsof全名list opened files,也就是列举系统中已经被打开的文件。我们都知道,Linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件。所以,用好lsof命令,对日常的Linux管理非常有帮助。

lsof详解见另外一篇文章

https://www.qedev.com/Linux/576.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3