inode爆满 引发的No space left on device

分类:技术 5.77k浏览

最近一台服务器因为邮件列表过大,导致 / 的 iNode 爆满,导致无法正常启动。

20161119225614

通过df -i 判断inode 占用 100%,开机时提示No space left on device错误。直接进入single单用户模式,发现/tmp 下有大量的Session文件,直接使用rm -rf /tmp/* 删除之,提示“Argument list too long” 。

20161119225618

看来文件多的离谱,直接rm 已经无法删除。

因为是生产环境,快速处理的同时不可能尝试编译内核去加大支持数量,于是采用执行命令:

ls | xargs ­n 10 rm ­rf ls

输出所有的文件名(用空格分割) xargs就是将ls的输出,每10个为一组(以空格为分隔符),作为rm ­rf的参数 也就是说将所有文件名10个为一组,由rm ­rf删除。大约等10分钟,删除部分文件后,直接reboot重启,先正常开机。

机器开机正常,df -i 发现占用还有99% ,看来还有病,怀疑exim导致,直接进入/var/spool/exim/input  ,发现大量的缓存文件,rm -rf /var/spool/exim/input/* 即可。