文件句柄是什么变量_不重启进程或者服务器释放rm删除的文件句柄的方法

我们经常会遇到服务器上的日志删除了,怎么服务器的磁盘空间还没有释放啊?

e3dc6eae587c65d88f6a4d83e3019dfd.png

lsof |grep deleted 我们可以查看到删除的日志,是deleted的状态,但是文件的句柄并没有释放掉,所以磁盘空间仍然没有释放掉。

6de2bf551d4bcf212ff83a83e76b348a.png

显示是已删除,实际文件的句柄没有释放

我们的常规做法是通过重启程序来解决文件句柄的释放,比如通过lsof我们可以抓取到对应的程序的pid

e0db55933b38495cea5c20238811c42c.png

lsof命令结果解析

再通过ps aux|grep PID,我们可以找到对应的进程信息,通过重启该程序来释放文件句柄,从而达到释放磁盘空间的目的。

要么重启服务器(SRE服务重启工程师终极武器)。

然而有时候实际情况是不允许我们去重启服务器或者重启应用的,那么还有什么办法去释放文件句柄呢?

通过上面的截图,我们随便找一个进程号,比如进程号7850, 任何我们找到7850的进程目录

cd /proc/7850/fd && ls -l

f0f6ced322ec808cbbf807ccefd471a6.png

可以看到proc下deleted文件的链接6,7

我们看到 6 -> /tmp/pymp-huscz3_2/pym-44-dklcx37r (deleted),6这个链接文件定向到了

/tmp/pymp-huscz3_2/pym-44-dklcx37r这个已经deleted的文件了,我们只要清空下这个链接就可以了,我们可以执行 echo > 6

再次执行lsof |grep deleted会看到这个deleted已经没有了,空间也得到释放了(^_−)☆

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值