今天,上午收到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。