linux文件删除空间未释放解决办法

  今天在生产环境上某个应用去Kafka消费数据一直报错,日志数据疯狂增加,一下子就把磁盘空间占满了,本人当时没想太多直接rm core.log一波,然后发现磁盘空间并未释放!
  原因很显然就是忽略了有应用一直在往其中写数据,直接删除无法释放磁盘空间。遇到这种问题,依据情况不同解决办法可以不一样。

方法一:

  首先是找到哪些应用在使用它导致空间没有释放:

$ lsof filename|grep deleted

得到进程号,如果进程不重要可以直接kill再重启。

方法二:

  如果应用不能重启呢,这个时候就需要在不重启应用的情况下操作,找到对应进程号后,直接cd /proc/pid/fd(fd中记录的是这个进程打开的所有文件的信息),pid是进程号,在通过方法一的lsof查找到被删除文件信息的时候,其中有一项是FD,这个值有最后一位去除(最后一位可能是w/r/u等表示文件状态),例如FD值为50w,则在fd路径下对应的文件是50,直接执行:

$ echo "" > 50

将文件给置空了,然后就发现空间释放了!
  上述两个方法是针对问题发生后的解决办法,但是如何避免出现上述问题呢,暂时了解的办法是如果是某个文本占据空间太多需要删除,不要直接rm删除,用echo "" > filename的方式先对文本置空,然后如果还是看不顺眼就可以直接rm删除了,此时即便还有应用在使用它,删除后也会释放空间。
  还有一种情况会导致空间未释放是因为删除的文件是inode对应文件的一个硬链接而已,解决办法参考https://blog.csdn.net/klordy_123/article/details/81543850后面写的解决方法!

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值