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.

Sai Ye Yan Naing Aye
quelle

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.

Ladadadada
quelle
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

Wiederholung
quelle
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.

römisch
quelle
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

Stavros
quelle
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.

hiburn8
quelle