天天看點

關于inodes占用100%的問題及解決方法

系統:CentOS ;一般的linux系統也可以用這種方法。

情況描述:今天我們郵件伺服器收發不了郵件了,而且連接配接到伺服器上開啟服務都開不了,起始以為磁盤空間不足,df 看了一下

<a href="http://s3.51cto.com/wyfs02/M01/12/4A/wKioL1MBxyWh2y9sAACNqc0lFWg702.jpg" target="_blank"></a>

發現空間是足夠的,然後df -i 檢視了下inodes,發現根目錄下的inodes值使用率為100%了

<a href="http://s3.51cto.com/wyfs02/M01/12/4A/wKioL1MBxgrzRM0dAACOXp-p5qE729.jpg" target="_blank"></a>

解決方法:通過以下腳本進行檢查,檢視到底哪個目錄下面的檔案最多:

for i in /*; do echo $i; find $i | wc -l; done(如果确定是某個目錄下面,則/轉換為該目錄絕對路徑,如/var/spool,則使用for i in /var/spool/*; do echo $i; find $i | wc -l; done)

<a href="http://s3.51cto.com/wyfs02/M02/12/4A/wKioL1MBxkuhH0I-AAAkwje5Tyo543.jpg" target="_blank"></a>

最終發現/var/soppl目錄最多。然後又進一步确定是/var/spool/amavisd/quarantine 目錄下面有上百萬個檔案,機器已經無法正常顯示了,後來百度檢視了下這個目錄是郵件伺服器,處理垃圾郵件活病毒郵件隔離的,明白原因了,删除該目錄下所有檔案;使用xargs指令來删除數量比較多的檔案:

ls | xargs -n 10 rm -rf

執行了大約10多小時之後,最終解決問題。 

本文轉自Devin 51CTO部落格,原文連結:http://blog.51cto.com/devingeng/1359849

繼續閱讀