Gary Richardson Asked: 2009-08-25 16:48:04 +0800 CST2009-08-25 16:48:04 +0800 CST 2009-08-25 16:48:04 +0800 CST 如何检查后缀队列大小? 772 后缀相当于sendmail -bp什么? postfix 8 个回答 Voted Best Answer womble 2009-08-25T17:03:28+08:002009-08-25T17:03:28+08:00 或者,少打字: mailq Andrejs Cainikovs 2009-08-25T16:56:23+08:002009-08-25T16:56:23+08:00 postqueue -p Alistair Prestidge 2009-10-14T05:05:34+08:002009-10-14T05:05:34+08:00 qshape 活动 将向您显示发送到每个域的电子邮件数量以及它们在活动队列中的停留时间 qshape 延迟 将向您显示相同的内容,但对于延迟队列 mikewaters 2011-11-11T11:42:07+08:002011-11-11T11:42:07+08:00 这是我使用的,从 postfix 邮件列表中挑选出来的。我删除了作者的名字,以防他不想在这里(你可以在源代码中看到它)。它只显示总数。 #!/usr/bin/env perl # postfix queue/s size # author: # source: http://tech.groups.yahoo.com/group/postfix-users/message/255133 use strict; use warnings; use Symbol; sub count { my ($dir) = @_; my $dh = gensym(); my $c = 0; opendir($dh, $dir) or die "$0: opendir: $dir: $!\n"; while (my $f = readdir($dh)) { if ($f =~ m{^[A-F0-9]{5,}$}) { ++$c; } elsif ($f =~ m{^[A-F0-9]$}) { $c += count("$dir/$f"); } } closedir($dh) or die "closedir: $dir: $!\n"; return $c; } my $qdir = `postconf -h queue_directory`; chomp($qdir); chdir($qdir) or die "$0: chdir: $qdir: $!\n"; printf "Incoming: %d\n", count("incoming"); printf "Active: %d\n", count("active"); printf "Deferred: %d\n", count("deferred"); printf "Bounced: %d\n", count("bounce"); printf "Hold: %d\n", count("hold"); printf "Corrupt: %d\n", count("corrupt"); 编辑:修正了第 26 行的错字。 99 Problems - Syntax ain't one 2015-10-01T00:43:15+08:002015-10-01T00:43:15+08:00 postqueue -p | tail -n 1 最后一行postqueue -p显示了多少请求和大小: -- 317788 Kbytes in 11860 Requests. Business Website Design 2013-01-21T23:08:40+08:002013-01-21T23:08:40+08:00 [root@server ~]# time mailq | grep -c '^[0-9A-Z]' 10 真实0m1.333s 用户 0m0.003s 系统 0m0.003s (以上结果表明有 10 封邮件在队列中) Brock Hensley 2013-04-07T06:15:02+08:002013-04-07T06:15:02+08:00 如果没有qshape,可以通过以下 yum 命令安装它: yum groupinstall perl development yum install postfix-perl-scripts qshape 打印 Postfix 队列域和年龄分布信息。你可以在这里读更多关于它的内容: http://www.postfix.org/QSHAPE_README.html 示例输出 % qshape -s hold | head T 5 10 20 40 80 160 320 640 1280 1280+ TOTAL 486 0 0 1 0 0 2 4 20 40 419 yahoo.com 14 0 0 1 0 0 0 0 1 0 12 extremepricecuts.net 13 0 0 0 0 0 0 0 2 0 11 ms35.hinet.net 12 0 0 0 0 0 0 0 0 1 11 winnersdaily.net 12 0 0 0 0 0 0 0 2 0 10 hotmail.com 11 0 0 0 0 0 0 0 0 1 10 worldnet.fr 6 0 0 0 0 0 0 0 0 0 6 ms41.hinet.net 6 0 0 0 0 0 0 0 0 0 6 osn.de 5 0 0 0 0 0 1 0 0 0 4 Doug_Cowie 2014-02-24T18:57:00+08:002014-02-24T18:57:00+08:00 这是一个例子。 #!/bin/bash for q in active bounce corrupt defer deferred flush hold incoming maildrop pid private public saved trace do count=$(find /var/spool/postfix/$q ! -type d -print | wc -l) echo $q $count done
或者,少打字:
将向您显示发送到每个域的电子邮件数量以及它们在活动队列中的停留时间
将向您显示相同的内容,但对于延迟队列
这是我使用的,从 postfix 邮件列表中挑选出来的。我删除了作者的名字,以防他不想在这里(你可以在源代码中看到它)。它只显示总数。
编辑:修正了第 26 行的错字。
postqueue -p | tail -n 1
最后一行
postqueue -p
显示了多少请求和大小:-- 317788 Kbytes in 11860 Requests.
[root@server ~]# time mailq | grep -c '^[0-9A-Z]'
10
真实0m1.333s
用户 0m0.003s
系统 0m0.003s
(以上结果表明有 10 封邮件在队列中)
如果没有
qshape
,可以通过以下 yum 命令安装它:yum groupinstall perl development
yum install postfix-perl-scripts
qshape 打印 Postfix 队列域和年龄分布信息。你可以在这里读更多关于它的内容:
http://www.postfix.org/QSHAPE_README.html
示例输出
这是一个例子。