轉:linux 硬盤滿了如何處理

件源於在服務器運行一個腳本程序…

好好的腳本突然報錯,還以爲腳本出現問題了。細看報錯原因(具體報錯信息已經忘記了),是沒有可用空間。從沒遇見過這個情況,怎麼辦呢?

一、確定是不是真的是磁盤空間不足

輸入命令:df –lh 查看磁盤信息

0

很明顯:Filesystem下的掛載點 /dev/xvda1 下的40G容量已經耗盡。

既然問題已經確定了,接下來就是處理了。

處理方法也很簡單,就是刪文件。

問:刪除什麼文件?

答:刪除佔用磁盤空間大,但又無用的文件。

問:什麼是無用的文件?

答:如果對系統不熟悉的話,日誌可能是你第一的下手目標。

二、如何定位最大文件目錄

輸入命令: cd / 進入根目錄。

輸入命令:du -h max-depth=1 尋找當前目錄,哪個文件夾佔用空間最大

usr

以上兩個命令之後,可以看到 /usr 此路徑佔用較大磁盤空間,佔用了21G。眼尖的同學可能看到了最後一項顯示24G,它表示當前目錄所有文件佔用磁盤空間總和容量是24G。

如法炮製,幾番判斷後,定位到tomcat的日誌文件。

catalina.png

由上圖可以判斷,17G文件在當前目錄(tomcat日誌目錄)文件中。

三、如何定位最大文件

輸入命令:ls –lhS 將文件以從大到小順序展現

ls_lhS.png

最終定位文件爲:catalina.out 這個日誌文件。

四、確認文件未被佔用

刪除文件誰都會:rm –f catalina.out 但是,最好確認下是否要下載下來讓開發人員分析日誌。

辛苦一陣找到文件,刪除了很開心,輸入命令:df –lh 發現磁盤空間仍是滿的狀態。跟圖一完全沒有區別。難道說是需要重啓系統嗎?linux會這麼不友好麼?

谷歌一下,發現了這麼一段話:

在Linux或者Unix系統中,通過rm或者文件管理器刪除文件將會從文件系統的目錄結構上解除鏈接(unlink).然而如果文件是被打開的(有一個進程正在使用),那麼進程將仍然可以讀取該文件,磁盤空間也一直被佔用。

輸入命令:/usr/sbin/lsof|grep deleted 確認刪除文件是否被佔用

tomcat.png

確實被佔用。根據第二列提供的pid,輸入命令:kill -9 13117 殺掉進程。

再次輸入命令:df –lh

df.png

如圖,磁盤空間被釋放了。問題順利處理了。

--------------------- 本文來自 ck3207 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/ck3207/article/details/76691904?utm_source=copy

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章