Söz Dizimi
postsuper [-psSv] [-c config_dir] [-d queue_id]
[-h queue_id] [-H queue_id]
[-r queue_id] [directory ...]
Açıklama
postsuper(1) komutu, Postfix kuyruğu üzerinde bakım işleri gerçekleştirir. Komutun kullanımı yetkili kullanıcı (superuser) ile sınırlandırılmıştır. E-posta kuyruğunu listeleme veya temizleme (flushing) gibi ayrıcalıksız kuyruk işlemleri için postqueue(1) komutuna bakın.
Varsayılan olarak postsuper(1), -s ve -p komut satırı seçenekleriyle talep edilen işlemleri tüm Postfix kuyruk dizinlerinde gerçekleştirir; buna e-posta dosyalarının bulunduğu incoming, active ve deferred dizinleri ile günlük (log) dosyalarının bulunduğu bounce, defer, trace ve flush dizinleri dahildir.
Seçenekler:
-c config_dir Belirtilen dizindeki main.cf yapılandırma dosyası, varsayılan yapılandırma dizini yerine kullanılır. Aşağıdaki MAIL_CONFIG ortam değişkeni ayarına da bakın.
-d queue_id Belirtilen kuyruk kimliğine (queue ID) sahip bir mesajı, belirtilen e-posta kuyruğundan ya da kuyruklarından siler (varsayılan: hold, incoming, active ve deferred).
Birden fazla dosyayı silmek için -d seçeneğini birden çok kez belirtin veya kuyruk kimliklerini standart girdiden (standard input) okumak için queue_id değerini - olarak belirtin. Örneğin, alıcısı tam olarak user@example.com olan tüm e-postaları silmek için:
mailq | tail -n +2 | grep -v '^ *(' | awk 'BEGIN { RS = "" }
# $7=gönderici, $8=alıcı1, $9=alıcı2
{ if ($8 == "user@example.com" && $9 == "")
print $1 }
' | tr -d '*!' | postsuper -d -
Tüm mesajları kaldırmak için "-d ALL" belirtin; örneğin, deferred kuyruğundaki tüm e-postaları silmek için "-d ALL deferred" belirtin. Güvenlik önlemi olarak ALL kelimesi büyük harfle belirtilmelidir.
Uyarı: Postfix kuyruk kimlikleri (queue ID) yeniden kullanılır (Postfix <= 2.8 sürümlerinde her zaman; Postfix >= 2.9 sürümlerinde ise enable_long_queue_ids=no olduğunda). Postfix e-posta sistemi e-posta teslim ederken postsuper çalıştırılırsa, yanlış mesaj dosyasının silinmesi yönünde çok küçük bir olasılık vardır.
Senaryo şu şekildedir:
Postfix e-posta ile işini bitirdiği için (teslim edilmiş veya göndericiye iade edilmiş olması sebebiyle), Postfix kuyruk yöneticisi postsuper(1) komutundan silinmesi istenen mesajı siler.Yeni bir e-posta gelir ve bu yeni mesaja, postsuper(1) komutunun silmesi gereken mesajla aynı kuyruk kimliği verilir. Silinmiş bir kuyruk kimliğinin yeniden kullanılma olasılığı yaklaşık 2**15'te 1'dir (sistem saatinin bir saniye içinde ayırt edebileceği farklı mikrosaniye değerlerinin sayısı).postsuper(1), silmesi gereken eski mesaj yerine bu yeni mesajı siler.
-h queue_id E-postayı teslim edilmeye çalışılmaması için "beklemeye" (on hold) alır. Belirtilen kuyruk kimliğine sahip bir mesajı, belirtilen e-posta kuyruğundan ya da kuyruklarından (varsayılan: incoming, active ve deferred) hold kuyruğuna taşır.
Birden fazla dosyayı beklemeye almak için -h seçeneğini birden çok kez belirtin veya kuyruk kimliklerini standart girdiden okumak için queue_id değerini - olarak belirtin.
Tüm mesajları beklemeye almak için "-h ALL" belirtin; örneğin, deferred kuyruğundaki tüm e-postaları beklemeye almak için "-h ALL deferred" belirtin. Güvenlik önlemi olarak ALL kelimesi büyük harfle belirtilmelidir.
Not: E-posta "beklemede" (on hold) iken, kuyruktaki süresi maximal_queue_lifetime veya bounce_queue_lifetime ayarını aşsa bile süresi dolmaz. "Beklemeden" çıkarıldıktan sonra süre aşımına tabi hale gelir.
Bu özellik Postfix 2.0 ve sonraki sürümlerde mevcuttur.
-H queue_id "Beklemeye" (on hold) alınmış e-postayı serbest bırakır. Belirtilen kuyruk kimliğine sahip bir mesajı, belirtilen e-posta kuyruğundan ya da kuyruklarından (varsayılan: hold) deferred kuyruğuna taşır.
Birden fazla dosyayı serbest bırakmak için -H seçeneğini birden çok kez belirtin veya kuyruk kimliklerini standart girdiden okumak için queue_id değerini - olarak belirtin.
Not: $maximal_queue_lifetime veya $bounce_queue_lifetime sürelerinin önemli bir kısmı kadar ya da daha uzun süre beklemede tutulan e-postaları serbest bırakmak için "postsuper -r" komutunu belirtin.
"Beklemede" olan tüm e-postaları serbest bırakmak için "-H ALL" belirtin. Güvenlik önlemi olarak ALL kelimesi büyük harfle belirtilmelidir.
Bu özellik Postfix 2.0 ve sonraki sürümlerde mevcuttur.
-p: Sistem veya yazılım çökmelerinden sonra geriye kalan eski geçici dosyaları temizler (purge).
-r queue_id Belirtilen kuyruk kimliğine sahip mesajı, belirtilen e-posta kuyruğundan ya da kuyruklarından (varsayılan: hold, incoming, active ve deferred) tekrar kuyruğa alır (requeue).
Birden fazla dosyayı tekrar kuyruğa almak için -r seçeneğini birden çok kez belirtin veya kuyruk kimliklerini standart girdiden okumak için queue_id değerini - olarak belirtin.
Tüm mesajları tekrar kuyruğa almak için "-r ALL" belirtin. Güvenlik önlemi olarak ALL kelimesi büyük harfle belirtilmelidir.
Tekrar kuyruğa alınan bir mesaj maildrop kuyruğuna taşınır ve buradan pickup(8) ile cleanup(8) arka plan programları (daemon) tarafından yeni bir kuyruk dosyasına kopyalanır. Birçok açıdan bu işlemin ele alınışı, yeni bir yerel gönderimden farklıdır.
• Mesaj, smtpd_milters veya non_smtpd_milters ayarlarına tabi tutulmaz. E-posta harici bir içerik filtresinden geçtiğinde bu durum, orijinal SMTP bağlantı durumu bilgilerine bağımlı olan Milter uygulamalarında yanlış sonuçlar doğuracaktır.
• Mesaj, e-posta adresi yeniden yazımı (rewriting) ve ikamesine (substitution) tekrar tabi tutulur. Bu işlem, yeniden yazım kuralları veya sanal eşlemeler (virtual mappings) değiştiğinde kullanışlıdır.
Adres yeniden yazım bağlamı (yerel veya uzak), mesajın ilk alındığı andakiyle aynıdır.
• Mesaj, yeni yerel e-posta gönderimleri için kullanılan içerik filtresi (content_filter) ayarlarının (varsa) aynısına tabi tutulur. Bu işlem, content_filter ayarları değiştiğinde kullanışlıdır.
Uyarı: Postfix kuyruk kimlikleri yeniden kullanılır (Postfix <= 2.8 sürümlerinde her zaman; Postfix >= 2.9 sürümlerinde ise enable_long_queue_ids=no olduğunda). Postfix e-posta sistemi çalışırken postsuper(1) çalıştırılırsa, yanlış mesaj dosyasının tekrar kuyruğa alınması yönünde çok küçük bir olasılık vardır, ancak bu durumun herhangi bir zarar vermemesi gerekir.
Bu özellik Postfix 1.1 ve sonraki sürümlerde mevcuttur.
-s: Yapı denetimi ve yapı onarımı. Bu işlem Postfix başlatılmadan önce bir kez yapılmalıdır.
• Adı, mesaj dosyasının inode numarasıyla eşleşmeyen dosyaları yeniden adlandırır. Bu işlem, kuyruk dosyaları Postfix <= 2.8 ile veya "enable_long_queue_ids = no" ayarıyla oluşturulmuşsa, e-posta kuyruğu farklı bir makineden veya yedekten geri yüklendikten sonra gereklidir.
• Dosya sistemi hiyerarşisinde yanlış yerde bulunan kuyruk dosyalarını taşır ve artık ihtiyaç duyulmayan alt dizinleri kaldırır. hash_queue_names ve/veya hash_queue_depth yapılandırma parametrelerinde yapılan bir değişiklikten sonra dosya konumlarının yeniden düzenlenmesi gerekir.
• Postfix <= 2.8 sürümüne geçiş için "enable_long_queue_ids = yes" ile oluşturulmuş kuyruk dosyalarını kısa adlarla yeniden adlandırır. Prosedür şu şekildedir:
# postfix stop
# postconf enable_long_queue_ids=no
# postsuper
Dosya adı değişikliklerini bildirmeyi durdurana kadar postsuper(1) komutunu art arda çalıştırın.
-S: Uzun dosya adlarının da mesaj dosyasının inode numarasıyla eşleşmesini gerektiren, -s seçeneğinin yedekli (redundant) bir sürümüdür. Bu seçenek test amaçlı mevcuttur ve Postfix 2.9 ve sonraki sürümlerde kullanılabilir.-v: Hata ayıklama amacıyla ayrıntılı günlük kaydını (verbose logging) etkinleştirir. Birden fazla -v seçeneği, yazılımın giderek daha ayrıntılı bilgi vermesini sağlar.
Teşhisler
Sorunlar standart hata akışına (standard error stream) ve syslogd(8) hizmetine bildirilir.
postsuper(1); -d ile silinen mesaj sayısını, -r ile tekrar kuyruğa alınan mesaj sayısını ve -s ile kuyruk dosya adı düzeltilen mesaj sayısını bildirir. Rapor, standart hata akışına ve syslogd(8) hizmetine yazılır.
Ortam
MAIL_CONFIG main.cf dosyasının bulunduğu dizin.
Hatalar
Postfix tarafından sterilize edilmemiş (yani maildrop kuyruğunda bulunan) e-postalar "beklemeye" (on hold) alınamaz.
Yapılandırma Parametreleri
Aşağıdaki main.cf parametreleri özellikle bu programla ilgilidir. Aşağıdaki metin yalnızca parametrelerin bir özetini sunar. Örnekleri de içeren daha fazla ayrıntı için postconf(5) kılavuzuna bakın.
config_directory ('postconf -d' çıktısına bakın) Postfix main.cf ve master.cf yapılandırma dosyalarının varsayılan konumu.
hash_queue_depth (1) hash_queue_names parametresiyle listelenen kuyruk dizinleri için alt dizin seviyesi sayısı.
hash_queue_names (deferred, defer) Birden fazla alt dizin seviyesine bölünen kuyruk dizinlerinin adları.
import_environment ('postconf -d' çıktısına bakın) Ayrıcalıklı bir Postfix sürecinin, Postfix dışı bir üst (parent) süreçten aktaracağı ortam parametrelerinin listesi veya ad=değer şeklindeki ortam değişkeni geçersiz kılmaları (overrides).
queue_directory ('postconf -d' çıktısına bakın) Postfix üst düzey kuyruk dizininin konumu.
syslog_facility (mail) Postfix günlük kaydının syslog olanağı (facility).
syslog_name ('postconf -d' çıktısına bakın) Süreç adına syslog kayıtlarında ön ek olarak eklenen bir ifadedir; böylece, örneğin "smtpd", "prefix/smtpd" haline gelir.
Postfix sürüm 2.9 ve sonrasında mevcuttur:
enable_long_queue_ids (no) Uzun, tekrarlanmayan kuyruk kimliklerini (kuyruk dosya adlarını) etkinleştirir.
Ayrıca Bakınız
sendmail(1), Sendmail uyumlu kullanıcı arayüzü postqueue(1), ayrıcalıksız kuyruk işlemleri
Lisans
Secure Mailer lisansı bu yazılımla birlikte dağıtılmalıdır.
Yazar(lar)
Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA
Wietse Venema Google, Inc. 111 8th Avenue New York, NY 10011, USA
POSTSUPER(1)