利用lsof命令查找已經刪除的文件來釋放磁盤空間


測試環境一台服務器/目錄空間使用率達到97%,但是通過du -sh *發現實際空間沒用到那么多,初步懷疑,之前刪除的文件,有運行中的進程一直占用,導致空間沒有釋放,如圖通過du -sh *發現共實際使用不到5G+空間,而通過df -h發現已經使用了45G。

 

接着我們通過lsof命令查找運行中的進程占用已經刪除的文件(僵死文件。這些文件實際上已經被刪除,但是有服務程序在使用這些文件,導致這些文件一直被占用,無法釋放磁盤空間,使用如下命令可以查看死文件占用情況),使用命令

lsof | grep delete |sort -nrk 7|more

注意:sort -nrk 7是將已經刪除的文件進行大小排序

 15638進程占用大量的的刪除文件,釋放這些文件,首先查找進程ps -ef|grep 15638,我這個是測試環境,所以我使用kill -9 15638直接殺死進程,再用df  -h

 空間使用率已經下降到11%

總結:在日常運維過程中,如果我們需要刪除比較大的文件可以使用> filename,這種可以直接釋放磁盤空間,使用rm 如果有進程在訪問文件,則有可能出現磁盤空間不釋放的情況。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM