Linux通过df命令查看显示磁盘空间满,但实际未占用问题

本文探讨了同事误删大文件导致磁盘占用率不降的问题,通过df、du、lsof等命令排查,解释了inode和deleted状态,最终提供了解决方案:卸载并重置挂载点,以及如何识别和释放已删除文件占用的空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题产生:让同事查看挂载点 “/”占用100%的原因,查看之后发现是/home/work/下的一个日志文件太大占用导致,然后同事就直接执行了rm命令,结果导致文件删了,但是挂载点占用率没有降下来,简直....

网上问度娘,得出如下总结(仅个人参考,如有给你大哥们带来错误判决敬请谅解)

1.df 命令查看

 2.du  -h -x / --max-depth=1 命令查看各个目录的占用空间,试图找到占用较多空间的目录

未发现磁盘占用较大目录的问题

 3.怀疑 inode 不够导致此问题,df -i 查看

 

inode使用率也正常

4.使用 lsof 检查,怀疑是不是有可能文件已被删除,但是进程还存活的场景

Linux 里的文件被删除后,空间没有被释放是因为在 Linux 系统中,通过 rm 或者文件管理器删除文件将会从文件系统的目录结构上解除链接 (unlink) 。然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。装态为 deleted 为标记被删除,其实该文件并没有从磁盘中删除,需要杀掉持有句柄的进程释放掉。

sudo lsof | grep deleted | cut -d " " -f 2 | sort -n | uniq | xargs kill

至此我的问题解决了

<-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->

1,然而网上有的说即使将如上所示的进程全部杀掉,发现空间占用仍是 100%。挂载的目录原来是有文件存在的,挂载之后这些文件就会隐藏,不属于该文件系统,此时使用 du 命令是看不到这些文件的。

解决方法,

1、卸载挂载点:

2、重新将磁盘挂载到新的空目录

#mkdir  /opt/videos

#mount  /dev/sda1  /opt/videos

#mount  -a

原文地址:Linux通过df命令查看显示磁盘空间满,但实际未占用问题 - Yr-Zhang - 博客园

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值