如何排查 Inodes 使用太多的問題

當碰到服務器 Inodes 報警,排查流程以下node

操做系統環境:Centos6.8vim

1、使用 df -i 查看那個分區用量最多

  • 這樣就先定位到了問題分區

2、進入該分區,使用文件數量統計腳本

#文件數量統計腳本

#!/bin/bash

for i in `ls`;
do
  file_num=`find ./$i/ -type f -print | wc -l`
  echo "$i,$file_num"
done
  • 這個腳本會統計出當前目錄下的每一個目錄有多少個文件,這樣就能夠找出文件最多的目錄,而後層層排查,就能夠定位到問題目錄。

3、小量分批刪除

ls | grep '^' | xargs -n 100 rm -f   #刪除列出的文件,以100個爲一組

# 使用這個指令是爲了不 "argument list too long "
  • 最後不要忘記了排查問題的緣由

最後分享下筆者遇到問題

  • 我用上訴方法排查出 /var/spool/postfix/maildrop/ 有大量文件

緣由是系統在執行 cron 任務時,會將 cron 執行腳本中的輸出信息(output)和告警信息(warning)以郵件的形式發送給 cron 全部者,而個人服務器上關閉了 postfix ,致使郵件發送失敗,小文件就堆積在了 maildrop 目錄下。若是 sendmail 或 postfix 正常運行,則會在 /var/mail 目錄下堆積大量的郵件文件。bash

  • 解決方法:修改 crond 配置文件
vim /etc/crontab
將 MAILTO=root 替換成 MAILTO="",須要重啓crond服務才能夠
相關文章
相關標籤/搜索