磁碟空間滿了情況處理

2021-08-02 21:31:16 字數 1758 閱讀 9211

今天伺服器無法操作,檢視磁碟資訊,記憶體資訊,cpu資訊都是滿的,重啟後,都說磁碟滿了,無法寫device,用命令

df -i
檢視inodes資訊,發現inodes已用盡。

df -h
磁碟空間沒有滿

使用命令可以檢視各個資料夾的大小排序:

進入對應資料夾進行查詢,排序前12條,查詢大資料夾

du -hm

--max

-depth=2

| sort -nr

| head -

12

查詢乙個大檔案

find .

-type f -size

+800m -print0

| xargs -

0 du -h

發現/var/spool/postfix/maildrop 小檔案太多

解決:

1、vi /etc/crontab;將mailto=root修改為mailto=」「,儲存。

2、/etc/init.d/crond restart

刪除:

1、find /var/spool/postfix/maildrop/ -type f |xargs rm -rf

確定應該是inodes滿了引起的

上面maildrop檔案清空之後,發現問題解決了,懷疑是計畫任務的mail檔案太多引起的,修改計畫任務的設定,在crontab末尾加上

>/dev/

null

2>&1.

或者

&> /dev/

null

例如

015

10 * /path/to/script.sh >/dev/

null

2>&101

510 * /path/to/script.sh &> /dev/

null

另外一種方法是編輯crontab

crontab -e

在第一行加入

mailto=」」

儲存退出

這樣做的好處是,可以避免 /var/mail/root 體積快速增長

同時,如果還是沒有處理好,inodes的占用還是太大,可以執行以下命令

解決方法:刪除無用的臨時檔案,釋放inode。

查詢發現 /tmp 目錄下有很多sess_***xx的 session臨時檔案。

ls -lt /tmp | wc -l

4011517

進入/tmp目錄,執行find -exec命令

find /tmp -type f -exec rm {} \;
如果使用rm *,有可能因為檔案數量太多而出現argument list too long錯誤,關於argument list too long錯誤可以參考《linux argument list too long錯誤解決方法》

除了/tmp的臨時檔案外,0位元組的檔案也會占用inode,應該也釋放。

遍歷尋找0位元組的檔案,並刪除。

find /home -type f -size 0 -exec rm {} \;
全部完成後,再用命令檢視系統資訊:

df -i
基本問題能解決了。

linux磁碟空間滿了

df h 看到根目錄已經用滿了!find size 100m xargs ls lh列出系統內大於100m的檔案 du max depth 1 h 檢視當前目錄內資料夾的大小 看一下才想起是內網開發用的資料庫,裡面最大的是備份目錄 果不其然備份檔案問題 使用排序命令從最大的開始刪除效率更高 最後決定...

磁碟空間滿了之後MySQL會怎樣

當磁碟空間爆滿後,mysql會發生什麼事呢?又應該怎麼應對?會發生什麼事 當磁碟空間寫滿了之後,mysql是無法再寫入任何資料的,包括對錶資料的寫入,以及binlog binlog index等檔案。當然了,因為innodb是可以把髒資料先放在記憶體裡,所以不會立刻表現出來無法寫入,除非開啟了bin...

linux磁碟空間不足處理

今天往centos虛擬機器拖檔案,報錯 卷檔案系統根目錄僅剩餘0位元組 記錄一下相關解決方法。檢視了自己的設定,已設定為最大容量,所以未採用此方法。命令如下 發現根目錄分割槽磁碟占用已達100 查詢相關資料,可用方法3。由於虛擬機器內未儲存太多檔案,感覺問題沒有這麼簡單,所以暫未採用此方法。檢視ro...