因?yàn)楣痉旁跍y(cè)試服務(wù)器上的服務(wù)比較多,磁盤經(jīng)常性會(huì)滿。以前滿過幾次,因?yàn)闀r(shí)間比較趕,每次只是草率的刪掉一點(diǎn)log或者臨時(shí)文件,到今天早上又發(fā)生一起事故,依然是磁盤空間滿,看了一下好像沒什么東西可以刪。
錯(cuò)誤描述:
發(fā)現(xiàn)磁盤空間滿,服務(wù)數(shù)據(jù)寫不進(jìn)數(shù)據(jù)庫(kù)中,使用du -h --max-depth=1命令查看大文件,發(fā)現(xiàn)文件只占40G,然而使用df -h 命令查看時(shí),磁盤用了170G占用了百分之一百。其余的空間莫名其妙就沒有了
24ec76e3d9f126a1d87807bced38dcd.png
用lsof檢查后才發(fā)現(xiàn)原因是,有文件被刪除,而進(jìn)程還活著,因而造成還占用空間的現(xiàn)象
注意:使用此方法后關(guān)聯(lián)服務(wù)會(huì)被殺掉,因?yàn)闅⒌暨M(jìn)程的時(shí)候,某些文件進(jìn)程是apache或者mysql的,所以會(huì)連帶著把他們也一起刪掉了,千萬(wàn)記得查看一下服務(wù)是否還在運(yùn)行,如果服務(wù)不在了,要手動(dòng)開一下。 對(duì)服務(wù)器業(yè)務(wù)不熟悉者需謹(jǐn)慎操作!!
解決方法:
#進(jìn)行查看
lsof |grep deleted
9b30f80a150f2f8d86225a20a41d5c5.png
#批量殺死進(jìn)程
lsof |grep delete | grep -v grep | awk '{print $2}' | xargs kill -9
期間可能會(huì)等一段時(shí)間,等殺完后,重新 df -h 查看,磁盤空間釋放
e9f8986afd6a248819bd87af7398621.png