Zeigt die Anzahl der Nachrichten in der Linux-Mail-Warteschlange an


12

Gibt es einen einfachen Befehl, um die aktuelle Anzahl von Nachrichten in der Linux-Mail-Warteschlange herauszufinden? mailqGibt eine ausführliche Liste aus, ist aber für einen schnellen Überblick ungeeignet.

Ich benutze Ubuntu und Postfix.


1
Welchen Mail Transfer Agent verwenden Sie?
Bart Silverstrim

Sagen Sie uns, wie Bart sagte, welche MTA Sie verwenden, damit wir Ihnen einen genaueren und korrekteren Ansatz geben können.
Prix

sendmail, sorry
dmp

Sicher ist es sendmail, nicht postfix? Nur um sicher zu gehen ...
Bart Silverstrim

Guter Fang, sein Postfix nicht sendmail.
dmp

Antworten:


25

Wenn Sie nur die Anzahl der Nachrichten in der zurückgestellten Warteschlange wissen möchten, sollten Sie eine schnelle Antwort auf die folgenden Fragen erhalten:

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

Es gibt drei weitere Warteschlangen. Weitere Informationen finden Sie unter http://www.porcupine.org/postfix/queueing.html .


1
In meinem Fall war es dies: find /var/spool/mqueue -type f | wc -lund dies, find /var/spool/mqueue-rx -type f | wc -lda ich zwei Warteschlangen habe und kein Postfix verwende.
Jeroen Wiert Pluimers

13

Sie können die Ausgabe filtern und nur die letzte Zeile anzeigen:

mailq | tail -n 1

2
Das ist eine nette Idee, aber die Warteschlange ist riesig, daher dauert es lange, bis ein Ergebnis zurückgegeben wird. Etwas schneller ..?
dmp

Wenn die Warteschlange wirklich sehr groß ist, liegt möglicherweise ein anderes Problem vor (es sei denn, Sie sind ein ISP oder ein Mail-Hosting-Dienst). Sie sollten kein so umfangreiches Backup haben, dass Sie einige Minuten auf diese Ergebnisse warten müssen ...?
Bart Silverstrim

Ich bin sicher, dass es ein anderes Problem gibt, aber das wird in einer anderen Frage
auftauchen

3

In diesem Zusammenhang können Sie auch die Anzahl der Nachrichten in Ihrer Mailbox abrufen, die im mbox-Format gespeichert sind, indem Sie den Vorschlag von Brian Showalter mit dem Befehl "mail --headers" ändern. Zum Beispiel habe ich diese Zeile in meiner .bashrc-Datei:

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

Das ist

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

Gute Idee, aber es funktioniert nicht, wenn mein Zabbix-Agent nicht als Root ausgeführt wird. Also habe ich das benutzt

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

für meinen eigenen UserParameter.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.