因為公司放在測試服務(wù)器上的服務(wù)比較多,磁盤經(jīng)常性會滿膛壹。以前滿過幾次驾中,因為時間比較趕,每次只是草率的刪掉一點log或者臨時文件模聋,到今天早上又發(fā)生一起事故肩民,依然是磁盤空間滿,看了一下好像沒什么東西可以刪链方。
錯誤描述:
發(fā)現(xiàn)磁盤空間滿持痰,服務(wù)數(shù)據(jù)寫不進數(shù)據(jù)庫中,使用du -h --max-depth=1命令查看大文件祟蚀,發(fā)現(xiàn)文件只占40G工窍,然而使用df -h 命令查看時,磁盤用了170G占用了百分之一百前酿。其余的空間莫名其妙就沒有了
用lsof檢查后才發(fā)現(xiàn)原因是患雏,有文件被刪除,而進程還活著罢维,因而造成還占用空間的現(xiàn)象
注意:使用此方法后關(guān)聯(lián)服務(wù)會被殺掉淹仑,因為殺掉進程的時候,某些文件進程是apache或者mysql的肺孵,所以會連帶著把他們也一起刪掉了攻人,千萬記得查看一下服務(wù)是否還在運行,如果服務(wù)不在了悬槽,要手動開一下怀吻。 對服務(wù)器業(yè)務(wù)不熟悉者需謹慎操作!初婆!
解決方法:
#進行查看
lsof |grep deleted
#批量殺死進程
lsof |grep delete | grep -v grep | awk '{print $2}' | xargs kill -9
期間可能會等一段時間蓬坡,等殺完后猿棉,重新 df -h 查看,磁盤空間釋放