02:linux 磁盤滿了,卻找不到大文件問題處理 lsof命令


今天,上午收到zabbix 報警。

報警內容:一台服務器,磁盤滿了。

故障排查步驟:

之前磁盤滿了,一般都是由於服務器上面再跑的服務日志引起的占用太多空間,服務器上有java程序,去刪除多余的日志就可以了。但是我記得這台服務器我是做過日志自動清理機制的。

因此登錄服務器,df -h 發現磁盤91% , df -i  索引正常。 

 

我首先想到是不是日志清理出問題了,去每個服務下面log查看發現正常,日志量只有幾百兆。

於是使用du找下大文件,於是在根目錄下,看下各個目錄的磁盤占用情況。

du -sh /

出來的結果是一共使用了6G多,沒有一個目錄有大文件的。

 這就很奇怪了,查看剩余空間和已用空間數據對不上,還相差40多個G。

於是,百度了下,原來有的文件可能刪除了,但是並沒有被釋放,就像進入回收站一樣,於是用lsof命令查看那些刪除了但是還打開着文件句柄的文件,並按照大小順序排列。

 

lsof | grep deleted | sort -nr

 

結果發現有一個java日志文件,有40多G,狀態為刪除,但是文件句柄仍然被打開了。還在不停的寫入數據,

 

於是群里面找到開發,讓幫忙重啟服務,再df -h,空間瞬間空閑了40多個G。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM