Linux rm掉檔案空間不釋放原因

jude_king發表於2016-05-27

上週有個客戶說伺服器空間滿了,要幫忙清理下空間。到現場刪掉了一個幾G的log檔案,但是使用df檢視檔案空間,依然還是使用100%,空間一直未釋放出來。上網查了一下,原來是呼叫那個檔案的程式還在,只要Kill掉就可以了。

—————————

原因其實很簡單,主要是因為被刪除的檔案在刪除的時侯還是程式在操作(開啟、訪問等)的緣故,rm只完成了在磁碟上檔案實體的釋放,而類似free list結構中相應的檔案系統因程式的操作相應的inode並未釋放。

解決的方法:這樣的問題解決起來也很簡單,找到操作的程式,kill掉就可以了,可是找到操作的程式恰恰是本問題的難點和關鍵。這樣的問題也可以通過重啟機器和nmount/mount檔案系統這樣的方式解決,但這樣的方法我是不提倡的,小小的問題就重啟機器,小題大做。

linux及solaris可以這樣做: 
a、下載一個lsof軟體裝上,google上可以搜到 
b、找到正在用被刪檔案的程式 
lsof | grep deleted 
c、kill掉相應的程式空間就釋放了

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29330852/viewspace-2108158/,如需轉載,請註明出處,否則將追究法律責任。

相關文章