日志文件删了但 df 没降,进程还占着已删除的句柄

文件被删但进程还打开着,df 仍认为块被占用,空间自然不降。

用 lsof 加 grep deleted 找出持有句柄的进程和文件。

重启或 reload 那个进程,句柄一释放空间立刻回收。

不能重启就临时挂 gdb 调进程,把对应描述符截断清零。

# 找出持有已删除文件的进程
lsof +L1 | grep deleted
# 或
lsof -nP | grep '(deleted)'
# 优先:reload / restart 该进程
systemctl restart nginx
# 兜底(谨慎,先在测试环境验证):
gdb -p <PID> -batch -ex 'call truncate("/proc/<PID>/fd/<FD>", 0)'
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容