Gibt es einen einfachen Befehl, um die aktuelle Anzahl von Nachrichten in der Linux-Mail-Warteschlange herauszufinden? mailq
Gibt eine ausführliche Liste aus, ist aber für einen schnellen Überblick ungeeignet.
Ich benutze Ubuntu und Postfix.
Gibt es einen einfachen Befehl, um die aktuelle Anzahl von Nachrichten in der Linux-Mail-Warteschlange herauszufinden? mailq
Gibt eine ausführliche Liste aus, ist aber für einen schnellen Überblick ungeeignet.
Ich benutze Ubuntu und Postfix.
Antworten:
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 .
find /var/spool/mqueue -type f | wc -l
und dies, find /var/spool/mqueue-rx -type f | wc -l
da ich zwei Warteschlangen habe und kein Postfix verwende.
Sie können die Ausgabe filtern und nur die letzte Zeile anzeigen:
mailq | tail -n 1
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
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.