10月2日早上6点服务器故障,nagios所有检测服务项全部告警,测试无法远程。

然后在控制台重启ecs,等了半个小时,终于重启好了,以前几分钟就重启好了。

登陆用df -hT查看,发现nfs磁盘没有挂载。

编辑/etc/rc.local,发现无法写入,报错


E138: Can't write viminfo file /root/.viminfo!

Press ENTER or type command to continue

这不科学呀,明明是root,怎么可能无法写入?


后来查看磁盘inodes状态,发现/已经是100%,难怪无法写入。

[root@xx~]# df -i

Filesystem      Inodes   IUsed   IFree IUse% Mounted on

/dev/xvda1     1310720 1310720       0  100% /

tmpfs          2041364       1 2041363    1% /dev/shm

/dev/xvdb1     7864320   17243 7847077    1% /data  


联系阿里云技术,进过几个小时的排查。最终发现

/var/spool/postfix/maildrop/这个目录下有大量的文件,

可能是由于该目录有大量的文件导致的inodes满了


在网上搜索之后明白是mail没有成功的邮件。由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面。如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。


先停止任务计划

/etc/init.d/crond stop

然后我就直接清空目录所有文件

cd /var/spool/postfix/maildrop

rm -rf ./*

等待20分钟清理完成

再次查看,发现终于好了。

[root@xx~]# df -i

Filesystem      Inodes   IUsed   IFree IUse% Mounted on

/dev/xvda1     1310720 1310720       0  10% /

tmpfs          2041364       1 2041363    1% /dev/shm

/dev/xvdb1     7864320   17243 7847077    1% /data  


关闭任务计划通知

[root@xx~]#vi /etc/crontab

MAILTO=root

更改为

MAILTO=""


重启任务计划

/etc/init.d/crond restart

过了几天,发现这个目录居然还有文件

然后我在任务计划第一行添加

[root@xx~]# crontab -e

#关闭任务计划通知

MAILTO=""


任务计划里面有很多每分钟执行的计划,等待半个小时,发现目录是空的。

Ok,那就说明以后再也不会产生文件了。