詭異的Linux磁盤空間被佔用問題,根目錄滿了,df和du佔用不同【轉】

新公司的測試機磁盤空間空餘很小,日誌不少,也很大,作個日誌壓縮腳本,在夜裏4:30自動運行,次日後發現磁盤空間又滿了,只好刪除沒用的日誌,清空空間,可詭異的是怎麼刪除沒用的文件,空間仍是佔用很大。如圖node

用du 根目錄下,發現這些文件加一塊也達不到佔用的空間大小。如圖linux

我也有碰見過此類問題,通常都是重啓完事,由於磁盤壞道損壞有可能致使此問題。segmentfault

或 DF -i 查看inode使用率,inode不夠用也會致使此問題。可看了inode也夠用。windows

如圖測試

 

此次我度娘了一下,」磁盤空間沒釋放「,按一篇文章幹,解決了此問題。spa

記錄以下:日誌

昨天協助同事搞定了一塊兒磁盤空間被」無形」佔用的疑難雜症,簡要記錄以備忘.blog

  一、用df 檢查發現/根目錄可用空間爲0進程

  [root@/]#df -hget

  二、用du檢查發現各目錄佔用的空間都不多,有約3G的空間莫名其妙地丟了.

  [root@/]# du -m –max-depth=1 |sort -gr

  三、用lsof檢查後才發現緣由是,有文件被刪除,而進程還活着,於是形成還佔用空間的現象

  [root@/]# lsof |grep delete

  根據lsof列出的進程號,kill這些進程後,空間就釋放出來了.

本文出自 「想飛卻飛不高的豬」 博客,請務必保留此出處http://2483526.blog.51cto.com/2473526/798379

 

linux裏的文件被刪除後,空間沒有被釋放是由於在Linux系統中,經過rm或者文件管理器刪除文件將會從文件系統的目錄結構上解除連接(unlink).然而若是文件是被打開的(有一個進程正在使用),那麼進程將仍然能夠讀取該文件,磁盤空間也一直被佔用。

態爲deleted爲標記被刪除,其實該文件並無從磁盤中刪除,相似windows下的回收站狀態。

據稱當有其餘進程打開某文件時文件被刪除,就會將該文件標記爲deleted,並刪除其目錄節點。使用du查看時,由於沒有該刪除狀態文件的節點信息,因此就不作統計,從而致使與df的結果不一致。

若要將deleted狀態文件刪除,則根據pid直接kill調相應進程便可。

找回被刪除文件:

使用lsof處理文件恢復、句柄以及空間釋放問題 - yexiaoxiaobai - SegmentFaulthttps://segmentfault.com/a/1190000000461077

相關文章
相關標籤/搜索