¿Cómo verifico el tamaño de la cola de postfix?

54

¿A qué equivale el postfix sendmail -bp?

Gary Richardson
fuente

Respuestas:

66

O, menos escribiendo:

mailq
womble
fuente
27
postqueue -p
Andrejs Cainikovs
fuente
27
qshape active

le mostrará la cantidad de correos electrónicos que se envían a cada dominio y cuánto tiempo han estado en la cola activa

qshape diferido 

le mostrará lo mismo pero para la cola diferida

Alistair Prestidge
fuente
15

Esto es lo que uso, seleccionado de la lista de correo postfix. Eliminé el nombre del autor, en caso de que no lo quiera aquí (puede verlo en la fuente). Solo muestra totales.

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

EDITAR: se corrigió un error tipográfico en la línea 26.

mikewaters
fuente
Gran script, y en mi humilde opinión debería ser parte de la distribución estándar de Postfix. A diferencia de mailq / postqueue, devuelve una respuesta inmediata para una cola bajo coacción
Alexander Pogrebnyak
Solo una palabra de precaución sobre la implementación particular de la countfunción. Fallará en Postfix 2.9+ cuando enable_long_queue_ids = yes '. Creo que no debería ser demasiado difícil arreglarlo para identificadores de cola largos.
Alexander Pogrebnyak
10

postqueue -p | tail -n 1

La última línea en el postqueue -pmuestra cuántas solicitudes y tamaño:

-- 317788 Kbytes in 11860 Requests.

99 problemas: la sintaxis no es una
fuente
Este comando se ejecuta rápidamente ya que no desperdicia ciclos mostrando los correos electrónicos individuales en la cola. Si solo quieres el total, ejecuta esto.
Paul Calabro
5

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

10

0m1.333s reales

usuario 0m0.003s

sys 0m0.003s

(el resultado anterior indica que hay 10 correos electrónicos en la cola)

Diseño de sitios web comerciales
fuente
2
Más concisamente: mailq | grep -c '^ \ w'
Antonio Bardazzi
5

Si no lo tiene qshape, puede instalarlo mediante los siguientes comandos yum:

yum groupinstall perl development
yum install postfix-perl-scripts

qshape imprime la información de distribución de edad y dominio de la cola Postfix. Puedes leer más sobre esto aquí:

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

Salida de ejemplo

% 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
Brock Hensley
fuente
2

Aquí hay un ejemplo.

#!/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
Doug_Cowie
fuente