2012-07-03 73 views
1

對不起,如果這聽起來很愚蠢,但我不知道該怎麼做。如何清除Linux CentOS系統上主系統驅動器上的空間?

我有一個完整的Ephemeral驅動器(主驅動器與所有系統文件)的亞馬遜EC2實例。幾乎所有安裝了Apache,MySQL,Sphinx,我的應用程序等的目錄都在單獨的物理驅動器上,並且具有短暫驅動器的符號鏈接。據我所知,他們的數據或日誌都沒有寫入臨時驅動器,所以我不知道該空間發生了什麼。

顯然很多系統的東西仍然是短暫的驅動器,但我不知道如何清除東西,以騰出空間。我最好的猜測是,當它對系統進行了一些自動更新時,亞馬遜充滿了驅動器。我正在嘗試安裝一些新軟件包,並通過YUM更新我的所有系統軟件包,但驅動器沒有空間。

我該怎麼辦?

回答

0

這很好。可以在更大的驅動器上花費幾分鐘(超過幾百GB):

find /directory/to/scan/ -type f -exec du -a {} + | sort -n -r | less 

輸出將是最大的文件優先。您可以使用普通的「less」命令來瀏覽結果......空格鍵(下一頁)和b(上一頁)。

1

您可以使用unix磁盤實用程序命令du查看啓動程序佔用的所有空間。

+0

謝謝。這很快幫我找到了我認爲我正在寫別的地方的HTTPD日誌。舊日誌在/ var/log/httpd中佔用大約5GB的空間。 –

15
du --max-depth=1 -h/

其中/可以從根開始將告訴你在人類可讀的形式(-H)的大小不經進一步遞歸進一步向下的任何目錄。

一旦你發現一些大,你要刪除您可以通過

rm <thing you want to remove> 

此接受shell擴展做,所以例如刪除所有MP3文件:

rm *.mp3  

如果它是一個目錄那麼你需要添加-r

rm -r /dir/to/remove 

爲了保護你自己它窩建議您將-i開關添加到每個rm調用,這迫使您確認您希望刪除這些文件。

如果您要刪除很多隻讀文件,那麼您可以添加-f開關強制刪除,請對此非常小心。

要小心,rm接受多個參數,所以當你指定一個絕對路徑,確保做到這一點引號內或不具有任何的空間,尤其是你應該執行它爲rootsuper特別是與-r-f選項。 (否則你會加入這並rm -rf/some/directory/*,殺了一羣人他們/不經意間)

如果你只是想看看在大文件和刪除這些,那麼你也可以使用find

find/-type f -size +100M 

將搜索(-type f),大小大於100MB(-size +100M

隨後您可以使用相同的命令刪除它們。

find/-type f -size +100M -exec rm \{\} \; 

-exec執行其被傳遞的文件或文件夾,它已找到(\{\})的程序,需要與被終止\;

不要忘記你可以添加-irm批准或不批准一個刪除。

+0

當你真的不知道文件可能被隱藏的地方時,我發現在以下文件夾中運行這個命令('du --max-depth = 1 -h。/')幾乎總是有助於追蹤罪魁禍首:/ etc,/local,/ sys或/ var。 –

+0

以/ var/cache/yum/*開頭,如果您使用的是亞馬遜EC2 - 發出一個簡單的命令:sudo yum clean all都可以清理一些喘息的空間時間以供進一步調查。還可以查看maillogs-AWS默認保存一個月,但如果您有很多cron作業回顯輸出(默認情況下發送到用戶郵件緩衝池),它們會變得相當大。 – Ross