网站首页 文章专栏 rm 删除文件但磁盘空间没释放lsof解决
在linux 系统下。如果使用 > filename 再删除 。可以避免这种情况发现。虽然这样进程还是记录的打开这个文件。但不影响释放磁盘空间
但如果你已经使用 rm 删除文件 。并且进程没有释放该文件打开的描述符。那么该文件所在的磁盘空间,一直会占用磁盘空间。
要想释放删除文件后,也让磁盘空间释放,使用下面的解决方法:
1. lsof | grep deleted 找到运行中的进程,并 kill 到该进程,也达到磁盘空间释放。
2. 通过 lsof | grep deleted 找到 pid 进程和fd 号 ,已删除和文件。 > /proc/<pid>/fd/<fd> 已达到释放磁盘空间
第一种方式,在这里不在表明。
我们来实战一下。第二种方法
查看lsof 标题
lsof | head -n 10
# 查看已删除的文件,(可以看到 1w 是fd 号)
lsof | grep deleted
清空文件
> /proc/5583/fd/1
结果战斗!