最近服务器收到监控报警,提示inodes占用超过80%。
网上查了下发现是因为小文件太多导致的。最后发现是原因是因为:
Linux 中/var/spool/postfix/maildrop目录下堆积大量小文件,网上有很多解决方案。于是决定选择最简单的一种,删除目录下的文件(在这个文件夹下千万不要用ll等命令,文件超级多,展示就是半天!)
产生这些文件的原因:是由于linux在执行cron时(使用man cron可以查看相关描述),会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面。如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。
准备使用rm -rf删除(这个命令要小心使用,一旦删错后果很严重),结果发现提示错误
原来发现文件数量太多,无法删除0 0.
最后找到如下命令解决:
ls | xargs -n 10 rm -fr ls
命令解释为:输出所有的文件名(用空格分割) xargs就是将ls的输出,每10个为一组(以空格为分隔符),作为rm -rf的参数也就是说将所有文件名10个为一组,由rm -rf删除
最终删除文件成功,inodes占用降低
网上还要一些能避免产生这类文件的方法:
vi /etc/crontab ;将‘MAILTO=root’替换成‘MAILTO="",然后service crond restart即可。如不行crontab -e 第一行增加MAILTO=""