Вопрос: Как проверить размер очереди постфикса?


Что такое постфиксный эквивалент sendmail -bp?


50
2017-08-25 00:48


Источник




Ответы:


Или, меньше набрав:

mailq

63
2017-08-25 01:03





postqueue -p

26
2017-08-25 00:56





qshape active

покажет вам количество писем, отправляемых в каждый домен, и сколько времени они были в активной очереди

qshape отложен

покажет вам то же самое, но для отложенной очереди


26
2017-10-13 13:05





Вот что я использую, выбитый из списка рассылки postfix. Я удалил имя автора, если он не хочет его здесь (вы можете увидеть его у источника). Он отображает только итоги.

#!/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: Исправлена ​​опечатка в строке 26.


14
2017-11-10 19:42



Готово. Спасибо за совет. - mikewaters
Отличный сценарий, и IMHO должен быть частью стандартного дистрибутива Postfix. В отличие от mailq / postqueue возвращается немедленный ответ для очереди под принуждением - Alexander Pogrebnyak
Просто предостережение относительно конкретной реализации count функция. Он не будет работать в Postfix 2.9+, если enable_long_queue_ids = yes '. Я думаю, что это не должно быть слишком сложно исправить для длинных идентификаторов очереди. - Alexander Pogrebnyak


postqueue -p | tail -n 1

Последняя строка в postqueue -p показывает, сколько запросов и размеров:

-- 317788 Kbytes in 11860 Requests.


9
2017-09-30 08:43



Эта команда выполняется быстро, так как в циклах нет циклов отображения отдельных сообщений электронной почты. Если просто хотите общее, запустите это. - Paul Calabro


[root @ server ~] # время mailq | grep -c '^ [0-9A-Z]'

10

реальный 0m1.333s

Пользователь 0m0.003s

sys 0m0.003s

(выше результата, указывающего, что 10 почтовых ящиков находятся в очереди)


5
2018-01-21 07:08



Более кратко: mailq | grep -c '^ \ w' - Antonio Bardazzi


Если у вас нет qshape вы можете установить его с помощью следующих команд yum:

yum groupinstall perl development
yum install postfix-perl-scripts

qshape печатает информацию о домене очереди очередей и информацию о возрасте. Вы можете прочитать больше об этом здесь:

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

Пример вывода

% 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