1. 程式人生 > >若linux 的分區硬盤滿,如何處理?

若linux 的分區硬盤滿,如何處理?

span 順序 args div apache 清理 管理 kill 目錄結構

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

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

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

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

三、如何定位最大文件

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

四、確認文件未被占用

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

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

,磁盤空間也一直被占用。

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

技術分享圖片

確實被占用。根據第二列提供的pid,

輸入命令:kill -9 13117 殺掉進程

再次輸入命令:df –lh

磁盤空間被釋放了。


日誌的清除

個人認為刪除日誌文件是比較不明智的,因為刪除之後還要去清理回收站才算徹底清除幹凈。

以wdcp系統的日誌來說,可以用find命令查看一下。

find / -size +100M |xargs ls -lh

我的系統裏面主要是4個比較大的文件。

/www/wdlinux/nginx-1.0.15/logs/access.log
/www/wdlinux/nginx-1.0.15/logs/error.log
/www/wdlinux/httpd-2.2.22/logs/error_log
/www/wdlinux/httpd-2.2.22/logs/access_log

  

Nginx的access日誌高達149g,占去了相當大的磁盤空間,這個是系統nginx環境的日誌,另外的是apache的訪問日誌。 在這裏不建議刪除,而已重寫,這樣比較快捷,免去很多麻煩。用putty登陸ssh,然後用cat命令重寫這幾個文件。

cat /dev/null >
/www/wdlinux/nginx-1.0.15/logs/access.log cat /dev/null > /www/wdlinux/nginx-1.0.15/logs/error.log cat /dev/null > /www/wdlinux/httpd-2.2.22/logs/error_log cat /dev/null > /www/wdlinux/httpd-2.2.22/logs/access_log

這樣上百G的日誌就歸零了。

若linux 的分區硬盤滿,如何處理?