Linux posta kuyruğundaki mesaj sayısını görüntüleme


12

Linux posta kuyruğundaki geçerli ileti sayısını bulmak için basit bir komut var mı? mailqayrıntılı bir liste oluşturur, ancak hızlı bir genel bakış için uygun değildir.

Ubuntu ve postfix kullanıyorum.


1
Hangi posta aktarım aracısını kullanıyorsunuz?
Bart Silverstrim

bart'ın dediği gibi, bize ne MTA kullandığınızı söyleyin, böylece size daha spesifik ve doğru bir yaklaşım verebiliriz.
Prix

sendmail, özür dilerim.
dmp

Sendmail değil, sendmail değil mi? Sadece emin olmak ...
Bart Silverstrim

iyi yakalamak, onun postfix sendmail değil.
dmp

Yanıtlar:


26

Sadece ertelenmiş kuyrukta oturan mesaj sayısını bilmek istiyorsanız, aşağıdakiler size hızlı bir cevap verecektir:

find /var/spool/postfix/deferred -type f | wc -l

Başka üç kuyruk daha var. Ayrıntılar için http://www.porcupine.org/postfix/queueing.html adresine bakın.


1
benim durumumda bu oldu: find /var/spool/mqueue -type f | wc -lve find /var/spool/mqueue-rx -type f | wc -lben iki kuyruk var ve postfix kullanmayın gibi.
Jeroen Wiert Pluimers

14

Çıktıya filtre uygulayabilir ve yalnızca son satırı görüntüleyebilirsiniz:

mailq | tail -n 1

2
Bu güzel bir fikir, ancak kuyruk çok büyük, bu nedenle bir sonucun geri dönmesi uzun zaman alıyor. Daha hızlı bir şey ..?
dmp

Kuyruk gerçekten çok büyükse, başka bir sorun olabilir (bir ISS veya posta barındırma hizmeti değilseniz). Bu sonuçlar için birkaç dakika beklemeniz gerekecek kadar büyük bir yedeğiniz olmamalı ...?
Bart Silverstrim

Eminim başka bir sorun var, ama bu başka bir soruya gelecek;)
dmp

3

İlgili bir konu olarak, Brian Showalter'ın önerisini "mail - headers" komutunu kullanarak mbox biçiminde saklanan posta kutunuzdaki mesaj sayısını da alabilirsiniz. Örneğin, bu satırı .bashrc dosyamda var:

if [ -s /var/mail/$(whoami) ] ; then echo -e "\nYou have $(ls -s -h /var/mail/$(whoami) | cut -d" " -f 1) of mail.  Number of messages: $(mail --file /var/mail/$(whoami) --headers | wc -l) ($(mail --file /var/mail/$(whoami) --headers | sed '/^>* *[0-9]/d' | wc -l) unread)" ; fi

1

Bu

find /var/spool/postfix/deferred -type f | wc -l

iyi fikir, ancak Zabbix-Agent'ım kök olarak çalışmazsa işe yaramaz. Bu yüzden kullandım

NUM=`mailq | grep -E "Requests" | awk '{print $5}'`; if [ -z "$NUM" ]; then echo "0"; else echo $NUM; fi

kendi UserParameter'ım için.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.