cron引起inode节点用光的情况 /var/spool/postfix/maildrop/ 中有大量的文件
今天有开发反应,磁盘一直写不进去,查看日志发现,尽是can not open 的提示,但是用df -h 查看根目录的是有容量,后来觉得有可能是inode节点没了,用df -i果然发现inode节点用光了。
首先第一步:找到/tmp目录下,删掉一些不用的东西,保证基本的操作。
第二步:怀疑哪里有会大量的文件产生,第一时间查看cron,确实存在有很多的cron,但是怎么确定是哪个出了问题呢
for i in /*; do echo $i; find $i |wc -l|sort -nr; done 查看/下有150万多个文件,逐一检查第一个目录,结果查看在/var/spool/postfix/maildrop/ 中发现了基本上所有的文件都在这里。怎么会有这么多的文件呢,先删除。
在网上搜索之后明白是mail没有成功的邮件。由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面。如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。
解决方法:
修改“/etc/crontab”
将‘MAILTO=root’替换成‘MAILTO=""’修改之后没有成功,需要重启crond服务才可以
也可从在crontab(crontab -e)中最前面直接加入MAILTO=""
特意记下!