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


Respuestas:




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


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.


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.


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

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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.