一个朋友的邮件系统不停的发邮件,自己留个记录。
大概意思就是不停的发邮件。。。
排查
查看日志,成M级别的涨。
top查看进程,有一个管理队列的进程qmgr占用资源很多,于是根据猜测,可能是队列太多的原因。
Postfix中有一套Mail Queue Management机制,所有队列中的邮件都可以全自动的处理,但在发送大量邮件的时候,有必要对这个队列进行手工的维护处理,比如说,删除队列中的邮件. 以下是一些常用的命令:
列出目前在 Mail Queue 中的邮件
mailq
刪除所有在 Queue 中的邮件
postsuper -d ALL
刪除所有正在 deferred 队列中的邮件 (删除曾经发送失败的邮件 )
postsuper -d ALL deferred
刪除所有正在 deferred 队列中的郵件 ( 可看出哪些信被刪除了 )
find /var/spool/postfix/deferred -type f -exec rm -vf /{/} /;
刪掉「三天以前」无法发送的邮件
find /var/spool/postfix/deferred -type f -mtime +3 -exec rm -f /{/} /;
列出目前所有无法发送的邮件 find /var/spool/postfix/deferred -type f -exec ls -l –time-style=+%Y-%m-%d_%H:%M:%S {} /;
刪除超过 5 天的 “defer” 佇列中的退信记录 find /var/spool/postfix/defer -type f -mtime +5 -exec rm -f /{/} /;
预设所有跟Postfix 相关的邮件都会放在/var/spool/postfix/ 目录下,想了解Postfix是如何管理队列的,可以参考 qmgr -Postfix queue manager 的手册.
以下是每个目录的用途
MAIL QUEUES
* incoming 收信箱
* active 正在准备发送的邮件
* defered 无法发送的邮件,等待重发
* corrupt 无法读取或者损坏的邮件
* hold 暂停的邮件,需要手工启动 DELIVERY STATUS REPORTS
* bounce 每一位收件者的送信状态,记录为什么退信由 bounce(8) 管理
* defer 每一位收件者的寄送状态,说明为什么延迟由 defer(8) 管理
* trace 每一位收件者的寄送状态信息,说明被 Postfix 用 “sendmail -v” 或 “sendmail -bv” 命令执行的状态由 trace(8) 管理
正常了。具体什么原因导致的问题,还要继续排查。
本文出自 “任志远@IT分享” 博客,请务必保留此出处http://renzhiyuan.blog.51cto.com/10433137/1794639
原文地址:http://renzhiyuan.blog.51cto.com/10433137/1794639