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.