मैं पोस्टफ़िक्स कतार आकार की जाँच कैसे करूँ?


जवाबों:




27
क्षिप्र सक्रिय

आपको प्रत्येक डोमेन को भेजे जाने वाले ईमेल की संख्या दिखाएगा और वे कितने समय से सक्रिय कतार में हैं

क्षेपक आस्थगित 

आपको वही दिखाएगा लेकिन आस्थगित कतार के लिए


15

यहाँ मैं क्या उपयोग कर रहा हूँ, पोस्टिंग मेलिंग सूची से culled। मैंने लेखक का नाम हटा दिया, यदि वह यहाँ नहीं चाहता (आप इसे स्रोत पर देख सकते हैं)। यह केवल योग प्रदर्शित करता है।

#!/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 पर एक टाइपो फिक्स्ड।


महान स्क्रिप्ट, और IMHO मानक पोस्टफिक्स वितरण का एक हिस्सा होना चाहिए। डाक के विपरीत / डाक टिकट तुरंत कतार के लिए तत्काल जवाब देता है
अलेक्जेंडर पोगरेबनायक

countफ़ंक्शन के विशेष कार्यान्वयन पर सावधानी का एक शब्द । यह पोस्टफिक्स 2.9+ में असफल हो जाएगा जब enable_long_queue_ids = yes '। मुझे लगता है कि लंबी कतार की आईडी के लिए इसे ठीक करना बहुत कठिन नहीं होना चाहिए।
अलेक्जेंडर पोगरेबनायक

10

postqueue -p | tail -n 1

postqueue -pदिखाता है कि कितने अनुरोध और आकार में अंतिम पंक्ति :

-- 317788 Kbytes in 11860 Requests.


यह कमांड जल्दी से निष्पादित करता है क्योंकि यह कतार में व्यक्तिगत ईमेल प्रदर्शित करने वाले चक्रों को बर्बाद नहीं करता है। अगर सिर्फ कुल चाहिए, तो इसे चलाइए।
पॉल कैलाब्रो

5

[रूट @ सर्वर ~] # समय मेलक | grep -c '^ [0-9A-Z]'

10

असली 0m1.333s

उपयोगकर्ता 0m0.003s

sys 0m0.003s

(उपरोक्त परिणाम से संकेत मिलता है कि 10 ईमेल कतार हैं)


2
अधिक संक्षेप में: mailq | grep -c '^ \ w'
एंटोनियो बार्डाज़ज़ी

5

यदि आपके पास नहीं है तो qshapeआप इसे निम्न यम आदेशों के माध्यम से स्थापित कर सकते हैं:

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

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.