Hậu tố tương đương với sendmail -bp
?
Hoặc, ít gõ:
mailq
[.__.] qshape hoạt động [.__.]
sẽ cho bạn biết số lượng email được gửi đến từng tên miền và thời gian chúng tồn tại trong hàng đợi hoạt động
[.__.] qshape hoãn lại [.__.]
sẽ cho bạn thấy tương tự nhưng đối với hàng đợi
postqueue -p
Đây là những gì tôi sử dụng, loại ra khỏi danh sách gửi thư hậu tố. Tôi đã xóa tên tác giả, trong trường hợp anh ta không muốn nó ở đây (bạn có thể thấy nó ở nguồn). Nó chỉ hiển thị tổng số.
#!/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: Đã sửa lỗi chính tả trên dòng 26.
postqueue -p | tail -n 1
Dòng cuối cùng trong postqueue -p
hiển thị có bao nhiêu yêu cầu và kích thước:
-- 317788 Kbytes in 11860 Requests.
[root @ server ~] # thời gian mailq | grep -c '^ [0-9A-Z]'
10
số 0m1.333 thực
người dùng 0m0.003s
sys 0m0.003s
(kết quả trên cho thấy có 10 email đang xếp hàng)
Nếu bạn không có qshape
bạn có thể cài đặt nó thông qua các lệnh yum sau:
yum groupinstall Perl development
[.__.] yum install postfix-Perl-scripts
qshape in tên miền hàng đợi Postfix và thông tin phân phối tuổi. Bạn có thể đọc thêm về nó ở đây:
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
Đây là một ví dụ.
#!/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