centos——linux删除文件后,磁盘空间未释放

问题描述

服务器磁盘空间使用率即将100%,使用rm -rf 日志文件名删除文件后,再使用df -h查看,发现磁盘空间未释放

问题原因

  • 在linux系统中,通过rm删除文件将会从文件系统的目录结构上接触链接(unlink),如果文件是被打开的(有进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用

问题解决

1、找出打开文件的进程

[root@localhost ~]# lsof | grep deleted[root@localhost ~]# find /proc/*/fd -ls | grep '(deleted)'

2、让进程释放文件,进而释放磁盘空间

当linux打开一个文件的时候,Linux内核会为每一个进程在/proc/ 『/proc/nnnn/fd/目录(nnnn为pid)』建立一个以其pid 为名的目录用来保存进程的相关信息,而其子目录fd保存的是该进程打开的所有文件的fd(fd:file descriptor)
kill进程是通过截断proc文件系统中的文件可以强制要求系统回收分配给正在使用的的文件

方式一:

[root@localhost ~]# kill -9 $进程号;				# kill掉相应的进程或者重启该进程,让os自动回收磁盘空间

方式二:

[root@localhost ~]# echo " " > 文件名[root@localhost ~]# : > /path/to/the/file.log		# 或 : > "/proc/$pid/fd/$fd"
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值