Linux文件删除后磁盘没有释放

来源:互联网 发布:软件技术服务包括什么 编辑:程序博客网 时间:2024/06/05 17:52

问题描述:
使用SpringBoot开发,使用log4j2保存日志,日志级别是INFO,保存全量日志。
系统运行一段时间后,日志文件大小达到20G,公司运营发出报警邮件,要求检查问题。
检查后发下文件太大,所以通过rm -rf xxxxxxxxxx指令删除文件。
删除文件后,报警并未解除。
在检查,使用df -h指令查看,磁盘使用还是在报警界线以上,即刚刚的文件并没有真正的删除。
通过各种搜索找资料,找到原因如下:
在linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink).然而如果文件是被打开(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。而我删除的日志文件,在删除的时候正在有程序往里面写日志。
解决办法:
既然找到原因,对应的解决方法也就出来了。
解决办法1:
比较优雅的做法是删除文件之前先确保没有进程使用它,再删除。
如果已经删除文件才发现有进程使用它,重启这个进程(比较暴力哦)。
解决办法2:
先备份需要删除的文件(如果需要的话),然后使用指令
echo “” > file
公司运营给出的方法,没有测试是否好用。

原创粉丝点击