文件已经删除,但是空间没有释放的原因

本文探讨了一台服务器因根分区空间满而引发的问题,原因是一个66GB的大日志文件在被删除后,由于httpd进程持续写入,导致空间未释放。通过`lsof`命令找出被锁定的已删除文件,并介绍了解决方案——在线清空文件以释放磁盘空间。
摘要由CSDN通过智能技术生成

运维监控系统发来通知,报告一台服务器空间满了,登陆服务器查看,根分区确实满了,这里先说一下服务器的一些删除策略,由于 linux 没有回收站功能,所以线上服务器上所有要删除的文件都会先移到系统 /tmp 目录下,然后定期清除 /tmp 目录下的数据。这个策略本身没有什么问题,但是通过检查发现这台服务器的系统分区中并没有单独划分 /tmp 分区,这样 /tmp 下的数据其实占用根分区的空间,既然找到了问题,那么删除 /tmp 目录下一些占用空间较大的数据文件即可。

 

 

 

# du -sh /tmp/* | sort -nr |head -3

 

 

 

通过命令发现在 /tmp 目录下有个 66G 大小的文件 access_log,这个文件应该是 apache 产生的访问日志文件,从日志大小来看,应该是很久没有清理的 apache 日志文件了,基本判定是这个文件导致的根空间爆满,在确认此文件可以删除后,执行如下删除命令,

 

# rm /tmp/access_Iog

 

# df -h

 

 

 

从输出来看,根分区空间仍然没有释放,这是怎么回事?

 

 

 

一般来说不会出现删除文件后空间不释放的情况,但是也存在例外,比如文件进程锁定,或者有进程一直在向这个文件写数据,要理解这个问题,就需要知道 linux 下文件的存储机制和存储结构。

 

 

 

一个文件在文件系统中存放分为两个部分:数据部分和指针部分&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值