| 场景 | df 与 du 不一致 / 空间没释放 |
|---|---|
| 组合 | lsof +L1 + /proc/PID/fd + 重启或截断 |
找出罪魁
找出罪魁
lsof +L1 | sort -k7 -rn | head -10 # 已删除仍打开(SIZE/OFF 列)
lsof +L1 | awk '$7 > 1073741824' | head # 大于 1G 的重点关注
# 从 fd 反查(更快):
ls -l /proc/1234/fd | grep deleted | head释放空间
释放空间
# 优雅选择:重启持有者进程(业务允许时)
# 或让应用重新打开日志:先确认应用语义,再:
kill -USR1 <pid> # 很多服务用 USR1 重开日志(nginx 等)
ls -l /proc/1234/fd | grep deleted # 复核是否释放不要手动删 /proc/PID/fd 下的链接当作常规手段(cp /dev/null 到 fd 路径更接近截断),操作前确认应用行为。