紅帽培訓班
企業分站 | 網站地圖 | RSS | XML

新聞分類

熱門關鍵詞

聯系我們

無錫優級先科信息技術有限公司

聯系人:湯老師

手機:189-6173-0665

電話:0510-82717300

傳真:0510-82717300

郵編:214000

郵箱:service@prithink.com

網址:www.gidannodza.com

地址:江蘇省無錫市南長區人民西路25號百腦匯科技大廈15樓1514


linux系統刪除文件后,但空間未釋放怎么辦?

您的當前位置: 首 頁 >> 新聞中心 >> 行業資訊

linux系統刪除文件后,但空間未釋放怎么辦?

發布日期:2021-04-22 作者:無錫優級先科信息技術有限公司 點擊:

       一般來說不會出現刪除文件后空間不釋放的情況,但是也存在例外,比如文件被進程鎖定,或者有進程一直在向這個文件寫數據等,要理解這個問題,就需要知道Linux下文件的存儲機制和存儲結構。

       一個文件在文件系統中的存放分為兩個部分:數據部分和指針部分,指針位于文件系統的meta-data中,在將數據刪除后,這個指針就從meta-data中清除了,而數據部分存儲在磁盤中。在將數據對應的指針從meta-data中清除后,文件數據部分占用的空間就可以被覆蓋并寫入新的內容,之所以在出現刪除文件后,空間還沒釋放,就是因為有進程還在一直向這個文件寫入內容,導致雖然刪除了文件,但是由于進程鎖定,文件對應的指針部分并未從meta-data中清除,而由于指針并未刪除,系統內核就認為文件并未刪除,因此通過df 命令查詢空間并未釋放也就不足為奇了。

       既然有了解決問題的思路,那么接下來看看是否有進程一直在向被刪除的文件中寫數據,這里需要用到Linux下的lsof命令,通過這個命令可以獲取一個仍然被應用程序占用的已刪除文件列表,命令執行如下:

       [root@localhost ~]# lsof | grep delete

      從輸出結果中可以查看到被刪除的文件被哪一項進程鎖定,而進程還很可能一直向這個文件寫入數據。從結果的第7列可查看到文件的大小,后一列的“deleted”狀態說明這個日志文件已經被刪除,但由于進程還在一直向此文件寫入數據,因此空間并未釋放。

       到這里問題就能排查清楚了,解決這一類問題的方法有很多種,簡單的方法是kill掉或重啟那項進程,當然也可以重啟操作系統,不過這些并不是的方法,因為有些進程很可能在使用中,不能進行重啟操作。對待這種進程不停對文件寫日志的操作,要釋放文件占用的磁盤空間,最好的方法是在線清空這個文件,具體可以通過如下命令完成:

       [root@localhost ~]# echo " " >文件名  這算是一個取巧的操作,直接把文件內容置空,服務也能正常使用,文件大小也可以控制下來了,并釋放多余的磁盤空間。

本文網址:http://www.gidannodza.com/news/529.html

關鍵詞:linux培訓班,linux培訓班哪家好,無錫linux培訓班

最近瀏覽:

爱爱小视频,japanese老熟妇乱子伦视频,4438全国大成网人网站