접미사 대기열 크기는 어떻게 확인합니까?


답변:




27
qshape 활성화

각 도메인으로 전송되는 이메일 수와 활성 큐에있는 시간을 표시합니다

지연된 qshape 

지연 대기열에 대해 동일하게 표시됩니다.


15

다음은 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");

편집 : 26 줄의 오타가 수정되었습니다.


훌륭한 스크립트와 IMHO는 표준 Postfix 배포의 일부 여야합니다. mailq 달리 / postqueue는 협박 큐에 대한 즉각적인 답을 반환
알렉산더 포그 레브 냑

count함수 의 특정 구현에 대한주의 사항입니다 . enable_long_queue_ids = yes '인 경우 Postfix 2.9 이상에서 실패합니다. 긴 대기열 ID를 수정하는 것이 너무 어렵지 않아야한다고 생각합니다.
Alexander Pogrebnyak

10

postqueue -p | tail -n 1

마지막 줄은 postqueue -p요청 및 크기를 보여줍니다.

-- 317788 Kbytes in 11860 Requests.


이 명령은 대기열에 개별 이메일을 표시하는주기를 낭비하지 않기 때문에 빠르게 실행됩니다. 총계를 원하면 이것을 실행하십시오.
Paul Calabro


5

없는 경우 qshape다음 yum 명령을 통해 설치할 수 있습니다.

yum groupinstall perl development
yum install postfix-perl-scripts

qshape는 Postfix 대기열 도메인 및 보존 기간 정보를 인쇄합니다. 자세한 내용은 여기를 참조하십시오.

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

2

다음은 예입니다.

#!/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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.