Bagaimana cara memeriksa ukuran antrian postfix?

54

Apa yang setara dengan postfix sendmail -bp?

Gary Richardson
sumber

Jawaban:

66

Atau, kurang mengetik:

mailq
womble
sumber
27
postqueue -p
Andrejs Cainikovs
sumber
27
qshape aktif

akan menunjukkan kepada Anda jumlah email yang dikirim ke setiap domain dan berapa lama mereka dalam antrian aktif

qshape ditangguhkan 

akan menunjukkan hal yang sama tetapi untuk antrian yang ditangguhkan

Alistair Prestidge
sumber
15

Inilah yang saya gunakan, diambil dari milis postfix. Saya menghapus nama penulis, kalau-kalau dia tidak mau di sini (Anda bisa melihatnya di sumbernya). Ini hanya menampilkan total.

#!/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: Memperbaiki kesalahan ketik pada saluran 26.

mikewaters
sumber
Skrip yang bagus, dan IMHO harus menjadi bagian dari distribusi Postfix standar. Tidak seperti mailq / postqueue mengembalikan jawaban segera untuk antrian di bawah paksaan
Alexander Pogrebnyak
Hanya kata peringatan tentang implementasi countfungsi tertentu. Ini akan gagal di Postfix 2.9+ ketika enable_long_queue_ids = yes '. Saya pikir seharusnya tidak terlalu sulit untuk memperbaikinya untuk id antrian panjang.
Alexander Pogrebnyak
10

postqueue -p | tail -n 1

Baris terakhir di postqueue -pmenunjukkan berapa banyak permintaan dan ukuran:

-- 317788 Kbytes in 11860 Requests.

99 Masalah - Sintaks bukan satu
sumber
Perintah ini dijalankan dengan cepat karena itu tidak membuang siklus menampilkan masing-masing email dalam antrian. Jika hanya ingin total, jalankan ini.
Paul Calabro
5

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

10

0m1.333s nyata

pengguna 0m0.003s

sys 0m0.003s

(hasil di atas menunjukkan bahwa ada 10 email antrian)

Desain Situs Web Bisnis
sumber
2
Lebih ringkas: mailq | grep -c '^ \ w'
Antonio Bardazzi
5

Jika belum, qshapeAnda dapat menginstalnya melalui perintah yum berikut:

yum groupinstall perl development
yum install postfix-perl-scripts

qshape mencetak domain antrian Postfix dan informasi distribusi usia. Anda dapat membaca lebih lanjut tentang ini di sini:

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

Contoh output

% 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
sumber
2

Berikut ini sebuah contoh.

#!/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
sumber