linux 硬盤滿了如何處理

事件源於在服務器運行一個腳本程序…
好好的腳本忽然報錯,還覺得腳本出現問題了。細看報錯緣由(具體報錯信息已經忘記了),是沒有可用空間。從沒碰見過這個狀況,怎麼辦呢?
1、肯定是否是真的是磁盤空間不足
輸入命令:df –lh         查看磁盤信息
 
很明顯:Filesystem下的掛載點 /dev/xvda1 下的40G容量已經耗盡。
既然問題已經肯定了,接下來就是處理了。
處理方法也很簡單,就是刪文件。
問:刪除什麼文件?
答:刪除佔用磁盤空間大,但又無用的文件。
問:什麼是無用的文件?
答:若是對系統不熟悉的話,日誌多是你第一的下手目標。
2、如何定位最大文件目錄
輸入命令: cd  /                  進入根目錄。
輸入命令:du -h max-depth=1            尋找當前目錄,哪一個文件夾佔用空間最大
 
以上兩個命令以後,能夠看到 /usr 此路徑佔用較大磁盤空間,佔用了21G。眼尖的同窗可能看到了最後一項顯示24G,它表示當前目錄全部文件佔用磁盤空間總和容量是24G。
如法炮製,幾番判斷後,定位到tomcat的日誌文件。
 
由上圖能夠判斷,17G文件在當前目錄(tomcat日誌目錄)文件中。
3、如何定位最大文件
輸入命令:ls –lhS                    將文件以從大到小順序展示
 
最終定位文件爲:catalina.out 這個日誌文件。
4、確認文件未被佔用
刪除文件誰都會:rm –f catalina.out 可是,最好確認下是否要下載下來讓開發人員分析日誌。
辛苦一陣找到文件,刪除了很開心,輸入命令:df –lh 發現磁盤空間還是滿的狀態。跟圖一徹底沒有區別。難道說是須要重啓系統嗎?linux會這麼不友好麼?
谷歌一下,發現了這麼一段話:
在Linux或者Unix系統中,經過rm或者文件管理器刪除文件將會從文件系統的目錄結構上解除連接(unlink).然而若是文件是被打開的(有一個進程正在使用),那麼進程將仍然能夠讀取該文件,磁盤空間也一直被佔用。
輸入命令:/usr/sbin/lsof|grep deleted       確認刪除文件是否被佔用
 
確實被佔用。根據第二列提供的pid,輸入命令:kill -9 13117 殺掉進程。
再次輸入命令:df –lh
 
如圖,磁盤空間被釋放了。問題順利處理了。 ---------------------
相關文章
相關標籤/搜索