今天伺服器無法操作,檢視磁碟資訊,記憶體資訊,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...