菜鸟笔记
提升您的技术认知

彻底解决linux索引节点(inode)用满导致故障的方法-ag真人游戏

今天服务器监控突然曝出了如下的错误:

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 文件

于是乎执行rm -rf ./* 竟然报错

只能来大招了。

find . -name "*" | xargs rm -rf 

10s后,成功收到报警解除的邮件

胜利处理完困扰我好几天的问题

网站地图