今天通过cacti采集数据时,明显发现mail server的CPU和负载都比较高,而且通过命令iostat发现I/0请求过多;最重要的是通过top命令发现更多的postfix error进程;于是到/var/log下查看日志。发现一直再刷日志:
status=deferred (delivery temporarily suspended: host mx1.mail.tw.yahoo.com[203.188.197.119] refused to talk to me: 421 4.7.0 [TS01] Messages from x.x.x.x(mail server ip ) temporarily deferred due to user complaints - 4.16.55.1 see http://postmaster.yahoo.com/421-ts01.html)
翻译了一下错误的意思:暂时推迟由于用户投诉,看了一下,了解大致的意思就是垃圾邮件过多;
之后我看了更多的maillog日志,确实是,有一个用户给*@ tw.yahoo.com发送大量的邮件,部分如下:
  shmin.412@yahoo.com.tw
                                         dogtown_0617@yahoo.com.tw
                                         hao0915@yahoo.com.tw
                                         sprite_0704@yahoo.com.tw
                                         alstonhuang@yahoo.com.tw
                                         wowbo2@yahoo.com.tw
                                         s085500@yahoo.com.tw
                                         kot0258@yahoo.com.tw
                                         fabianhuang@yahoo.com.tw
所以怀疑是要么这个用户恶意去发邮件或者是被其他人利用了发邮件;
解决思路:尝试不让他发送邮件看一下
就是删除这个用户或者更改这个用户的密码,不让其登录
1. 使用的是mysql数据库,登录库-查看表
delete from mailbox where username="用户名";
2. 要清空队列以及活跃的关于这个用户发送的邮件,我做的比较简单,把队列情况了
到目录/var/spool/postfix,把目录下的 bounce/ active deferred/ incoming/ 文件下的文件都给删掉了,
重启postfix,恢复正常!

这个只是我解决这个事情的一个大致的过程,可能操作不是那么的严谨,我是先把postfix给停掉再操作的!抛砖引玉吧,记录一下,如果有谁遇到,希望可以帮到你解决困境!