Come posso controllare la dimensione della coda postfix?


Risposte:




27
qshape attivo

ti mostrerà il numero di email inviate a ciascun dominio e per quanto tempo sono rimaste nella coda attiva

qshape differito 

ti mostrerà lo stesso ma per la coda differita


15

Ecco cosa uso, selezionato dalla mailing list postfix. Ho rimosso il nome dell'autore, nel caso in cui non lo volesse qui (puoi vederlo alla fonte). Visualizza solo i totali.

#!/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: corretto un refuso sulla linea 26.


Ottimo script e IMHO dovrebbero far parte della distribuzione standard di Postfix. A differenza di mailq / postqueue restituisce una risposta immediata per una coda sotto coercizione
Alexander Pogrebnyak

Solo un avvertimento sulla particolare implementazione della countfunzione. Fallirà in Postfix 2.9+ quando enable_long_queue_ids = yes '. Penso che non dovrebbe essere troppo difficile correggerlo per ID di coda lunga.
Alexander Pogrebnyak,

10

postqueue -p | tail -n 1

L'ultima riga nella postqueue -pmostra quante richieste e dimensioni:

-- 317788 Kbytes in 11860 Requests.


Questo comando viene eseguito rapidamente poiché non spreca cicli che visualizzano le singole e-mail nella coda. Se vuoi solo il totale, esegui questo.
Paul Calabro,


5

Se non lo qshapehai, puoi installarlo tramite i seguenti comandi yum:

yum groupinstall perl development
yum install postfix-perl-scripts

qshape stampa le informazioni sul dominio della coda Postfix e sulla distribuzione dell'età. Puoi leggere di più qui:

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

Esempio di output

% 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

2

Ecco un esempio

#!/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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.