如何清除/重置Postfix队列
问题:
完全重置或清除Postfix队列的最佳方法是什么?
您应该使用postsuper命令从Postfix队列中删除消息--d 选项将删除具有指定队列ID的消息。
我在使用这样的脚本来运行邮件队列中的所有消息:
mailq | awk '$7~/@/{print$1}' | while read qid; do postsuper -d $qid; done
-p在系统或软件崩溃后清除旧的临时文件。
$ cat /usr/local/sbin/postclear
#!/bin/bash
usage() {
echo "${0/*/} --from <address1> [<address2> .. <addressN>]"
echo "${0/*/} --bounce <address1> [<address2> .. <addressN>]"
echo "${0/*/} --to <address1> [<address2> .. <addressN>]"
}
if [ $# -lt 2 ]; then
usage 1>&2 ;
exit 1;
fi
case $1 in
--from )
shift
while (( $# )) ; do
postqueue -p | grep -e "$1" | grep -Eo '^[A-F0-9]+' | postsuper -d -
shift
done
exit;;
--bounce )
shift
while (( $# )) ; do
postqueue -p | grep -E -B2 -e "$1" | grep MAILER-DAEMON | grep -Eo '^[A-F0-9]+' | postsuper -d -
shift
done
exit;;
--to )
shift
while (( $# )) ; do
postqueue -p | grep -E -B2 -e "$1" | grep -Eo '^[A-F0-9]+' | postsuper -d -
shift
done
exit;;
* )
echo "Unknown option $1" >&2
exit 1;;
esac