| 事件源于在服務(wù)器運(yùn)行一個腳本程序… 好好的腳本突然報錯,還以為腳本出現(xiàn)問題了。細(xì)看報錯原因(具體報錯信息已經(jīng)忘記了),是沒有可用空間。從沒遇見過這個情況,怎么辦呢? 一、確定是不是真的是磁盤空間不足 輸入命令:df –lh 查看磁盤信息 很明顯:Filesystem下的掛載點(diǎn) /dev/xvda1 下的40G容量已經(jīng)耗盡。 既然問題已經(jīng)確定了,接下來就是處理了。 處理方法也很簡單,就是刪文件。 問:刪除什么文件? 答:刪除占用磁盤空間大,但又無用的文件。 問:什么是無用的文件? 答:如果對系統(tǒng)不熟悉的話,日志可能是你第一的下手目標(biāo)。 二、如何定位最大文件目錄 輸入命令: cd / 進(jìn)入根目錄。 輸入命令:du -h max-depth=1 尋找當(dāng)前目錄,哪個文件夾占用空間最大 以上兩個命令之后,可以看到 /usr 此路徑占用較大磁盤空間,占用了21G。眼尖的同學(xué)可能看到了最后一項(xiàng)顯示24G,它表示當(dāng)前目錄所有文件占用磁盤空間總和容量是24G。 如法炮制,幾番判斷后,定位到tomcat的日志文件。 由上圖可以判斷,17G文件在當(dāng)前目錄(tomcat日志目錄)文件中。 三、如何定位最大文件 輸入命令:ls –lhS 將文件以從大到小順序展現(xiàn) 最終定位文件為:catalina.out 這個日志文件。 四、確認(rèn)文件未被占用 刪除文件誰都會:rm –f catalina.out 但是,最好確認(rèn)下是否要下載下來讓開發(fā)人員分析日志。 辛苦一陣找到文件,刪除了很開心,輸入命令:df –lh 發(fā)現(xiàn)磁盤空間仍是滿的狀態(tài)。跟圖一完全沒有區(qū)別。難道說是需要重啟系統(tǒng)嗎?linux會這么不友好么? 谷歌一下,發(fā)現(xiàn)了這么一段話: 在Linux或者Unix系統(tǒng)中,通過rm或者文件管理器刪除文件將會從文件系統(tǒng)的目錄結(jié)構(gòu)上解除鏈接(unlink).然而如果文件是被打開的(有一個進(jìn)程正在使用),那么進(jìn)程將仍然可以讀取該文件,磁盤空間也一直被占用。 輸入命令:/usr/sbin/lsof|grep deleted 確認(rèn)刪除文件是否被占用 確實(shí)被占用。根據(jù)第二列提供的pid,輸入命令:kill -9 13117 殺掉進(jìn)程。 再次輸入命令:df –lh 如圖,磁盤空間被釋放了。問題順利處理了。 | 
|  |