新公司的測試機磁盤空間空余很小,日志很多,也很大,做個日志壓縮腳本,在夜里4:30自動運行,第二天后發現磁盤空間又滿了,只好刪除沒用的日志,清空空間,可詭異的是怎么刪除沒用的文件,空間還是占用很大。如圖
用du 根目錄下,發現這些文件加一塊也達不到占用的空間大小。如圖
我也有遇見過此類問題,一般都是重啟完事,因為磁盤壞道損壞有可能導致此問題。
或 DF -i 查看inode使用率,inode不夠用也會導致此問題。可看了inode也夠用。
如圖
這次我度娘了一下,”磁盤空間沒釋放“,按一篇文章干,解決了此問題。
記錄如下:
昨天協助同事搞定了一起磁盤空間被”無形”占用的疑難雜症,簡要記錄以備忘.
1、用df 檢查發現/根目錄可用空間為0
[root@/]#df -h
2、用du檢查發現各目錄占用的空間都很少,有約3G的空間莫名其妙地丟了.
[root@/]# du -m –max-depth=1 |sort -gr
3、用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 - SegmentFault
https://segmentfault.com/a/1190000000461077