Linux 檔案已刪除但空間不釋放問題

2021-09-24 04:59:49 字數 729 閱讀 7209

有時候linux磁碟空間已滿,手動刪除了大檔案之後,df檢視一下發現空間占用還是100%,這是啥問題呢?

lsof | grep deleted
使用以上命令可以檢視已經刪除的檔案程序,kill掉之後,空間就能得到釋放。

服務用不了,mysql插入資料超時堵塞,登入上伺服器檢視果然又是磁碟滿了,之前遇到過幾次這個問題,所以熟練地刪除了幾個大檔案,但並沒有出現預期中的空間釋放,磁碟占用還是100%。

一般說來不會出現刪除檔案後空間不釋放的情況,但是也存在例外,比如檔案被程序鎖定,或者有程序在使用這個檔案,例如輸出日誌檔案等等,要理解這個問題,就需要知道linux下檔案的儲存機制和儲存結構。

乙個檔案在檔案系統中由兩個部分構成:資料和指標。指標位於檔案系統的meta-data中,資料被刪除後,指標被清除,而資料部分還是儲存在磁碟中,只不過資料對應的指標被清除後,檔案資料部分占用的空間就可以被覆蓋了。之所以出現刪除大檔案後,空間還沒釋放,就是因為有程序一直在使用這個檔案的指標,日誌檔案,服務還在跑嘛,導致雖然刪除了日誌大檔案,但檔案對應的指標部分由於程序鎖定,並未從meta-data中清除,而由於指標並未被刪除,那麼系統就認為檔案並未被刪除,所以df檢視還是100%。

1.使用開頭介紹的方案,直接殺程序,但是容易出現其他不可預知的問題,例如服務異常啊等等。

2.echo "" > ***.log,這算是乙個取巧的操作,直接把檔案置空,服務也可以用,檔案大小也可以控制下來了。

Linux檔案刪除但空間不釋放問題篇

通常報磁碟不足的錯誤,有兩個原因 磁碟空間滿 可以通過df h命令檢視磁碟的使用情況。磁碟inode資源占用完 可以通過df i命令檢視,確認inode節點使用率 如果是inode資源占用完,是因為使用的小檔案過多導致的。但如果是磁碟空間滿,我們需要刪除檔案,擠出空間來,但發現磁碟空間根本沒減少。這...

Linux rm刪除檔案,但空間不釋放?

一般說來不會出現rm掉不釋放空間的情況 出現這樣的情況一般是由於有程序在向檔案中寫資料或有程序正在訪問檔案 而此時rm檔案則會出現不釋放空間的情況 理解這樣的問題需要理解rm的操作內含 乙個檔案的存放有資料部分和指標部分,而指標位於檔案系統的頭 刪除作業系統的乙個檔案與oracle drop表的實質...

運維實戰案例之檔案已刪除但空間不釋放問題解析

1 錯誤現象 運維的監控系統發來通知,報告一台伺服器空間滿了,登陸伺服器檢視,根分割槽確實沒有空間了,如下圖所示 這裡首先說明一下伺服器的一些刪除策略,由於linux沒有 站功能,我們的線上伺服器所有要刪除的檔案都會首先移動到系統 tmp目錄下,然後定期清除 tmp目錄下的資料。這個策略本身沒有問題...