最近一台服务器因为邮件列表过大,导致 / 的 iNode 爆满,导致无法正常启动。
通过df -i 判断inode 占用 100%,开机时提示No space left on device错误。直接进入single单用户模式,发现/tmp 下有大量的Session文件,直接使用rm -rf /tmp/* 删除之,提示“Argument list too long” 。
看来文件多的离谱,直接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/* 即可。