磁盘满了的处理方法

文章描述了一位系统管理员在Linux环境中遇到磁盘空间不足的问题,通过使用`df-h`,`du-h--max-depth=1`,`df-i`,`lsof`等命令排查,发现并非由大文件或inode耗尽引起。最后,通过检查挂载点发现隐藏的文件导致了空间占用,卸载挂载目录并清理文件解决了问题。

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

在linux系统上,告警提示磁盘空间不够,如图所示

 df -h
首先使用 sudo du / -h --max-depth=1 命令查看各个目录的占用空间,试图找到占用较多空间的目录
但是从结果显示来看并没有占用大空间的磁盘,于是乎继续分析。

查看 inode 的使用率,怀疑 inode 不够导致此问题
 df -i

通过 df -i 命令查看后发现 inode 使用率也正常的,只能进一步分析。

使用 lsof 检查,怀疑是不是有可能文件已被删除,但是进程还存活的场景
sudo lsof |grep delete
Linux 里的文件被删除后,空间没有被释放是因为在 Linux 系统中,通过 rm 或者文件管理器删除文件将会从文件系统的目录结构上解除链接 (unlink) 。然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。装态为 deleted 为标记被删除,其实该文件并没有从磁盘中删除,类似windows下的回收站状态。

即使将如上所示的进程全部杀掉,发现空间占用仍是 100%,此时头大呀。。

突然回想起,是不是由于挂载盘导致的,

如果mount目录下原来是有文件存在的,那么该目录被 mount 之后这些文件就会被隐藏,不属于该文件系统,使用du命令是看不到的。
卸载挂载盘
df -h

查看卸载之后挂载盘大小

果然发现占用了磁盘空间。
将 videos 目录下的文件删除或拷贝到其他目录,并重新挂载
由此问题得到解决。

问题总结
在挂载目录时,要确认挂载的目录是否有文件,如果有文件那么挂载之后这些文件就会隐藏,此时使用 du 命令是看不到这些文件的。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值