一、現象:
Linux主機:用df -hT
查看磁盤佔用已經滿了,但是用du -sh *
又找不到是哪些文件目錄佔滿了磁盤。
二、解決,lsof
lsof |grep delete
用lsof檢查後才發現原因是,有文件被刪除,而進程還活着,因而造成還佔用空間的現象。
根據lsof列出的進程號,kill這些進程或重啓進程後,空間就釋放出來了。重要服務進程pid,注意確認,別發重要服務kill了。
三、總結
- 日誌文件等,不要多個進程公用同一個文件,這樣有的進程下線清理文件,由於其他進程佔用,空間不會釋放。
- 清理一些文件,不要直接
rm -rf
,如果進程讀取的文件,文件刪了由於進程佔用,空間不會釋放。可以echo > filename
清空文件