Wie zähle ich die Nachrichten von Postfix's mailq?


10

Wie kann ich die Anzahl der Nachrichten in Postfix's mailq ermitteln? mailqBefehl zeigt ganze Mails in mailq an, aber ich möchte nur count zählen. Gibt es einen Befehl dafür. Mein Betriebssystem ist Centos 5.5.

Antworten:


20

Ich benutze das:

mailq | grep -c "^[A-F0-9]"

Sie können die Ausgabe der mailqdurch verschiedene andere Filter wie uniq, sortund wcandere Statistiken zu erhalten.


Dies ist nicht korrekt. Wenn die Postfix-Warteschlange leer ist und dann 'mailq' ausgeführt wird, wird "Mail-Warteschlange ist leer" angezeigt, was auch mit "^ [0-9A-Z]" übereinstimmt. Und in einer solchen Situation ist es nicht genau.
Andy

1
Eine bessere Regex ist die, ^[A-F0-9]die korrekt zu 0 führt, wenn die E-Mail-Warteschlange leer ist. Ich habe die Antwort bearbeitet.
Ladadadada

Wie albern, die letzte Zeile der Ausgabe ist die Zählung
Geoffrey

16

entweder mailq | tail -n 1oderfind /var/spool/postfix/deferred -type f | wc -l

beides funktioniert


1
Ich erhalte "682430 KB in 26472 Anfragen". für den ersten und "23" für den zweiten.
Rob

0

Leiten Sie den Ausgang an wc weiter. Wenn eine weitere Verfeinerung erforderlich ist, verwenden Sie grep.


0

ich benutze

/usr/sbin/postqueue -p | /usr/bin/tail -n1 | /usr/bin/gawk '{print $5}'

scheint schneller als grep, aber es wird keine 0 zurückgegeben


0

Ich benutze:

mailq | grep -c "^ $"

Dies entspricht im Wesentlichen der Antwort von @ Ladadadada von:

mailq | grep -c ^ [A-F0-9]

Außer ich suche nur nach den leeren Zeilen, die jedem Nachrichteneintrag im mailq-Protokoll folgen, und nicht nach etwas, das wie der Beginn einer gültigen Nachrichten-ID aussieht. In Bezug auf die Leistung ist es daher besser, obwohl der Unterschied nur bei sehr typischen Mailq-Protokollgrößen spürbar ist.

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.