當(dāng)碰到服務(wù)器 Inodes 報(bào)警,排查流程如下
操作系統(tǒng)環(huán)境:CentOS6.8
一、使用 df -i 查看那個(gè)分區(qū)用量最多
•這樣就先定位到了問(wèn)題分區(qū)
二、進(jìn)入該分區(qū),使用文件數(shù)量統(tǒng)計(jì)腳本
#文件數(shù)量統(tǒng)計(jì)腳本
#!/bin/bash
for i in `ls`;
do
file_num=`find ./$i/ -type f -print | wc -l`
echo “$i,$file_num”
done
•這個(gè)腳本會(huì)統(tǒng)計(jì)出當(dāng)前目錄下的每個(gè)目錄有多少個(gè)文件,這樣就可以找出文件最多的目錄,然后層層排查,就可以定位到問(wèn)題目錄。
三、小量分批刪除
ls | grep ‘^’ | xargs -n 100 rm -f #刪除列出的文件,以100個(gè)為一組
# 使用這個(gè)指令是為了避免 “argument list too long “
•最后不要忘記了排查問(wèn)題的原因
最后分享下筆者遇到問(wèn)題
•我用上訴方法排查出 /var/spool/postfix/maildrop/ 有大量文件
原因是系統(tǒng)在執(zhí)行 cron 任務(wù)時(shí),會(huì)將 cron 執(zhí)行腳本中的輸出信息(output)和告警信息(warning)以郵件的形式發(fā)送給 cron 所有者,而我的服務(wù)器上關(guān)閉了 postfix ,導(dǎo)致郵件發(fā)送失敗,小文件就堆積在了 maildrop 目錄下。如果 sendmail 或 postfix 正常運(yùn)行,則會(huì)在 /var/mail 目錄下堆積大量的郵件文件。
•解決方法:修改 crond 配置文件
vim /etc/crontab
將 MAILTO=root 替換成 MAILTO=””,需要重啟crond服務(wù)才可以