Frage Wie überprüfe ich die Größe der Postfix-Warteschlange?


Wie ist das Postfix? sendmail -bp?


50
2017-08-25 00:48


Ursprung




Antworten:


Oder, weniger tippen:

mailq

63
2017-08-25 01:03





postqueue -p

26
2017-08-25 00:56





qshape aktiv

zeigt Ihnen die Anzahl der E-Mails an, die an jede Domain gesendet werden und wie lange sie in der aktiven Warteschlange waren

qshape verschoben

zeigt Ihnen das Gleiche, aber für die zurückgestellte Warteschlange


26
2017-10-13 13:05





Hier ist, was ich benutze, aus der Postfix-Mailing-Liste geklaut. Ich habe den Namen des Autors entfernt, falls er es hier nicht haben will (Sie können es an der Quelle sehen). Es zeigt nur Summen an.

#!/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");

EDIT: Ein Tippfehler in Zeile 26 behoben.


14
2017-11-10 19:42



Erledigt. Danke für den Tipp. - mikewaters
Tolles Skript, und IMHO sollte ein Teil der Standard-Postfix-Distribution sein. 100 sch sch 100 100 100 100 100 100 100 dieser 100 sch sch sch 100 100 sch sch sch 100 sch 100 sch 100 sch 100 sch 100 sch 100 sch 100 sch 100 sch 100 sch 100 sch 100 100 100 100 100 100 100 100 100 100 dieser sch 100 sch dieser dieser sch dieser dieser dieser 100 sch dieser dieser 100 dieser dieser dieser 100 sch 100 sch 100 dieser sch 100 sch dieser dieser sch dieser dieser dieser dieser dieser dieser dieser dieser - Alexander Pogrebnyak
Nur ein Wort zur Vorsicht bei der konkreten Umsetzung von count Funktion. Es wird in Postfix 2.9+ fehlschlagen, wenn enable_long_queue_ids = yes '. Ich denke, es sollte nicht zu schwer sein, es für lange Warteschlangen-IDs zu beheben. - Alexander Pogrebnyak


postqueue -p | tail -n 1

Letzte Zeile in der postqueue -p zeigt an, wie viele Anfragen und Größe:

-- 317788 Kbytes in 11860 Requests.


9
2017-09-30 08:43



Dieser Befehl wird schnell ausgeführt, da keine Zyklen mit einzelnen E-Mails in der Warteschlange verschwendet werden. Wenn Sie nur die Summe möchten, führen Sie dies aus. - Paul Calabro


[root @ server ~] # zeit mailq | grep -c '^ [0-9A-Z]'

10

echte 0m1.333s

Benutzer 0m0,003s

sys 0m0.003s

(das obige Ergebnis zeigt an, dass 10 E-Mails in der Warteschlange sind)


5
2018-01-21 07:08



Prägnanter: mailq | grep -c '^ \ w' - Antonio Bardazzi


Wenn Sie nicht haben qshape Sie können es über die folgenden yum-Befehle installieren:

yum groupinstall perl development
yum install postfix-perl-scripts

qshape druckt Informationen zur Postfix-Warteschlangen-Domain und Altersverteilung. Sie können mehr darüber hier lesen:

http://www.postfix.org/QSHAPE_README.html

Beispielausgabe

% 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

5
2018-04-06 14:15





Hier ist ein Beispiel.

#!/bin/bash

for q in maildrop incoming active defer deferred

    do
        count=$(find /var/spool/postfix/$q ! -type d -print | wc -l)
        echo $q $count
    done

1
2018-02-24 02:57