返回列表 发帖

清除 qmail 指定队列的脚本

  1. [root@hk bin]# cat clean_queue
  2. #!/bin/sh
  3. QMAIL_PATH=/var/qmail

  4. MYHOST=`cat ${QMAIL_PATH}/control/me`
  5. cd ${QMAIL_PATH}

  6. svc -d supervise/send/

  7. if [ -n "$1" ]; then
  8.         find queue -type f -exec grep "$1" {} \; -print -exec rm {} \;
  9. fi

  10. find queue -type f -exec grep "root@$MYHOST" {} \; -print -exec rm {} \;
  11. find queue -type f -exec grep "MAILER-DAEMON@$MYHOST" {} \; -print -exec rm {} \;
  12. ${QMAIL_PATH}/bin/queue-fix queue

  13. killall qmail-remote
  14. svc -u supervise/send/
  15. mailq
复制代码
该脚本需要 queue-fix 配合使用。脚本程序和queue-fix已经包含在igenus的发行版本中。

/var/qmail/bin/clean_queue 后面可以加参数,用以删除指定关键字内容的邮件。一般可使用发送者地址。发送者的地址可以用
/var/qmail/bin/qmail-qread 或者 mailq 命令获取。不使用参数的情况下,仅删除积压在队列中的无主退信。

注意,任何对队列的操作,都可能会带来一定的危险,请谨慎使用。

返回列表