徹底解決Linux索引節點(inode)用滿導致故障的方法
阿新 • • 發佈:2019-02-04
今天伺服器監控突然曝出了如下的錯誤:
vfs.fs.inode[/,pfree]):5 %
登入到伺服器上df -i一看/路徑下96%,而資料目錄/data下才用了30%,故初步判斷生成的資料量正常,可能是一些系統產生的檔案把根路徑佔滿了
於是乎在執行以下命令,檢視根路徑下各個資料夾的檔案數
for i in /*; do echo $i; find $i |wc -l|sort -nr; done
數檔案數超過10W的有兩個/data(我們的資料分割槽,確認資料量正常)和/var
/data 13W+檔案
/var下70W+檔案
樓主linux水平有限,於是把/var下的目錄一個個的執行了上面的命令
重點來了,當執行到下面的時候for i in /var/cache; do echo $i; find $i |wc -l|sort -nr; done for i in /var/db; do echo $i; find $i |wc -l|sort -nr; done ........
for i in /var/spool/; do echo $i; find $i |wc -l|sort -nr; done
資料夾裡有70W+檔案
於是重複上述步驟,終於找到了罪魁禍首
for i in /var/spool/postfix/maildrop/; do echo $i; find $i |wc -l|sort -nr; done
/var/spool/postfix/maildrop/下有67W+檔案
樓主百度了一把,發現了這篇文章:http://www.shangxueba.com/jingyan/121368.html
於是乎執行rm -rf ./* 竟然報錯
只能來大招了。
find . -name "*" | xargs rm -rf
10S後,成功收到報警解除的郵件勝利處理完困擾我好幾天的問題