Comment vérifier la taille de la file d'attente postfix?


Réponses:




27
qshape actif

vous montrera le nombre de courriels envoyés à chaque domaine et combien de temps ils sont dans la file d'attente active

qshape différée 

vous montrera la même chose mais pour la file d'attente différée


15

Voici ce que j’utilise, tiré de la liste de diffusion postfix. J'ai enlevé le nom de l'auteur, au cas où il ne le voudrait pas ici (vous pouvez le voir à la source). Il affiche uniquement les totaux.

#!/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: Correction d'une faute de frappe sur la ligne 26.


Excellent script, et IMHO devrait faire partie de la distribution standard de Postfix. Contrairement à mailq / postqueue renvoie une réponse immédiate pour une file d'attente sous la contrainte
Alexander Pogrebnyak

Juste un mot de prudence sur la mise en œuvre particulière de la countfonction. Il échouera dans Postfix 2.9+ lorsque enable_long_queue_ids = yes '. Je pense qu'il ne devrait pas être trop difficile de le réparer pour les identifiants de longue file d'attente.
Alexander Pogrebnyak

10

postqueue -p | tail -n 1

La dernière ligne de la postqueue -pmontre le nombre de requêtes et leur taille:

-- 317788 Kbytes in 11860 Requests.


Cette commande s'exécute rapidement car elle ne gaspille pas de cycles affichant les courriels individuels dans la file d'attente. Si vous voulez juste le total, lancez ceci.
Paul Calabro


5

Si vous n'en avez pas, qshapevous pouvez l'installer via les commandes yum suivantes:

yum groupinstall perl development
yum install postfix-perl-scripts

qshape imprime des informations sur la répartition par âge et le domaine de la file d'attente Postfix. Vous pouvez en lire plus à ce sujet ici:

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

Exemple de sortie

% 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

Voici un exemple.

#!/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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.