背景:收到zabbix监控,线下某台机器磁盘告警
登录服务器,在根路径查看目录大小
发现占用大小跟已使用量空间不一致,想到可能是某个文件句柄未释放导致
查看还在使用的文件句柄:lsof |grep -i deleted
上面标红是之前为了分析问题执行的抓包命令,可疑。
直接把进程干掉:kill 14867
再次查看磁盘空间大小:
磁盘空间已释放,问题解决。
查了下,可通过清空文件描述符文件清除,这样可以应对某些服务正在运行时需要处理的情况:
# 清空fd
> /proc/${pid}/fd/${id}
# 或直接调用truncate命令
truncate -s 0 /proc/${pid}/fd/${id}