centos磁盤滿了,查找大文件並清理


今天發現vps敲入crontab -e 居然提示 “Disk quota exceeded” 無法編輯。於是"df -h"查了查發現系統磁盤空間使用100%了。最后定位到是/var/spool/mail/root 這個文件有幾個G。於是清理掉,問題解決。如果不知道是哪些文件占了磁盤空間,可以看下面查找大文件方法。
 
 
 
linux操作系統中,經常會遇到磁盤空間滿的問題。遇到這樣的問題,先查下是什么文件過大或過多引起的,至於引起這個更深一層的原因,先不探討。怎么查看大文件所在的路徑,linux中有一個命令,叫du,
先貼命令:du -m --max-depth=1或du -h --max-depth=1du:用於統計linux中文件或目錄所占磁盤空間的大小du參數######-
m:以M為單位展示查詢結果
-h:以K、M、G為單位展示查詢結果,提高信息可讀性
--max-depth=1:其中,數字“1”是指查詢結果中最多顯示的目錄層數,這里指最多顯示一層目錄。示例如下:

 

然后,利用此命令,逐層(目錄)深入,這樣就一定會查詢到大文件所在目錄,但也有可能是目錄中文件過多所致。當找到大文件后,若因某些原因,不想對文件進行刪除,可以用echo或cat或clear命令清除文件內容:
echo > /var/log/big.log此命令會把/var/log目錄中的big.log文件內容清除,而又不刪除big.log文件
cat > /var/log/big.log此命令能與“echo > /var/log/big.log”達到相同效果,不過,命令執行后,需要用“Ctrl + d”結束
clear > /var/log/big.log此命令會把big.log文件內容清空,而不刪除文件

 

==========================================================

另一種情況: 也可能是inode用完了.

 
用# df -i  可以查看。

真的是inode用完了,磁盤沒法再寫入新的內容了,這個是某些臨時的小文件太多了,把inode用完了,把它刪掉就行了。

# find /var/spool/clientmqueue -type f -print -exec rm -f {} \;
這個命令中 /var/spool/clientmqueue 是要刪除的文件所在的目錄 -type f這個參數限定find只查找普通文件(即不是管道文件,不是塊文件,不是鏈接文件,不是目錄等),防止誤刪除系統文件。

原因分析:系統中有用戶開啟了cron,而cron中執行的程序有輸出內容,輸出內容會以郵件形式發給cron的用戶,而sendmail沒有啟動所以就產生了這些文件;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM