背景:收到zabbix監控,線下某台機器磁盤告警
登錄服務器,在根路徑查看目錄大小
發現占用大小跟已使用量空間不一致,想到可能是某個文件句柄未釋放導致
查看還在使用的文件句柄:lsof |grep -i deleted
上面標紅是之前為了分析問題執行的抓包命令,可疑。
直接把進程干掉:kill 14867
再次查看磁盤空間大小:
磁盤空間已釋放,問題解決。
查了下,可通過清空文件描述符文件清除,這樣可以應對某些服務正在運行時需要處理的情況:
# 清空fd
> /proc/${pid}/fd/${id}
# 或直接調用truncate命令
truncate -s 0 /proc/${pid}/fd/${id}