Bagaimana cara memeriksa ukuran antrian postfix?


Jawaban:




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


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.


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.


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)


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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.