«

»

Oca 24

Sunucunuzun göndermeye çalıştığı e-postaları inceleme (postfix mail queue and bottleneck analysis) ve darboğaz analizi.

Postfix’de 4 kuyruk var ama genelde işiniz iki kuyruk üzerinde olacaktır: pending ve deferred.
Bekleyen (pending) kuyruk, postfix’e gönderilen ve henüz gönderilmemiş ve alıcı sunucuya dağıtılmamış tüm iletileri içermektedir.
Deferred posta kuyruğu, yazılım hatası olan ve kullanımdan kaldırılması gereken tüm iletileri (geçici hata) tutmaktadır.
Postfix, ertelenmiş kuyruğu ayarlanan aralıklarla göndermeyi yeniden denemektedir. (varsayılan olarak 5 dakikadır ancak yapılandırılabilir.)

Kuyrukları incelemede yararlanacağınız bazı komutlar:
1- Deferred ve pending mail kuyruklarını görüntüleme :

mailq veya postqueue -p Çıktısını kaydetmek için: mailq > postakuyruğu.txt veya postqueue -p > postakuyruğu.txt

2- Postfix kuyruğunda mesajı (içerik, başlık ve gövde) görüntüleme:

XYXYXYXY kimliğine sahip bir mesajı görüntülemek için: (kimliği kuyruktan görmek mümkün)
postcat -vq XYXODXYX veya bir dosyaya kaydetmek için postcat -vq XYXYXABC> postaXYXYXABC.txt

Artık posta kuyruğunu incelemek için gerekli adımları öğrendik, sırada silme işlemleri var.

3- Postfix’in hemen kuyruğu işlemesi:

postqueue -f veya postfix flush
Postfix'in sıradaki tüm iletileri hemen göndermeye çalışmasına neden olur.

4- Kuyruktaki postaları posta kuyruğundan silme:

postsuper -d ALL kuyruktaki tün postaları sil.
postsuper -d ALL deferred
Yalnızca deferred posta kuyruğu iletilerini silin (yani yalnızca sistemin daha sonra yeniden denemek istediklerini)

5- Postayı seçerek kuyruktan silme:
Bunu internet hazır buldum. Kim yazdıysa eline emeğine sağlık 🙂

#!/usr/bin/perl

$REGEXP = shift || die “no email-adress given (regexp-style, e.g. bl.*\@yahoo.com)!”;

@data = qx;

for (@data) {

if (/^(\w+)(\*|\!)?\s/) {

$queue_id = $1;

}

if($queue_id) {

if (/$REGEXP/i) {

$Q{$queue_id} = 1;

$queue_id = “”;

}

}

}

#open(POSTSUPER,”|cat”) || die “couldn’t open postsuper” ;

open(POSTSUPER,”|postsuper -d -“) || die “couldn’t open postsuper” ;

foreach (keys %Q) {

print POSTSUPER “$_\n“;

};

close(POSTSUPER);

Kullanım örnekleri:
bilecik.edu.tr adlı alan adında veya alan adından tüm sıraya alınmış iletileri silin, şunu girin:
./postfix-delete.pl bilecik.edu.tr
E-posta adresinde “yetişkin” kelimesini içeren tüm sıraya alınmış iletileri silin:
./postfix-delete.pl yetişkin

Postfix Bottleneck Analysis

1 yorum

  1. Kişisel Blog

    Yararlı bilgi için teşekkürler güzel yazı

Kişisel Blog için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

AlphaOmega Captcha Classica  –  Enter Security Code
     
 

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>