How can I get number of messages count in Postfix's mailq? mailq
command display entire mails in mailq but i would like to know count only.Is there any command for this. My OS is centos 5.5.
5 Answers
I use this:
mailq | grep -c "^[A-F0-9]"
You can pipe the output of mailq
through various other filters such as uniq
, sort
and wc
to get other statistics.
-
This is not accurate. When the Postfix queue is empty, then run 'mailq', we will get "Mail queue is empty" which also match "^[0-9A-Z]". And in such a situation it is not accurate.– andyJul 7, 2015 at 12:59
-
1A better regex is
^[A-F0-9]
which correctly results in 0 when the mail queue is empty. I've edited the answer. Oct 6, 2015 at 16:26 -
1
either mailq | tail -n 1
or find /var/spool/postfix/deferred -type f | wc -l
both works
-
1I get "682430 Kbytes in 26472 Requests." for the first one and "23" for the second one.– robDec 18, 2017 at 13:28
-
1The second one only shows deferred messages, adding the active queue the counts should match up:
find /var/spool/postfix/active /var/spool/postfix/deferred -type f | wc -l
. Nov 30, 2021 at 8:50
I use
/usr/sbin/postqueue -p | /usr/bin/tail -n1 | /usr/bin/gawk '{print $5}'
seems quicker than grep but no 0 returns
I use:
mailq | grep -c "^$"
This is essentially the same as @Ladadadada's answer of:
mailq | grep -c "^[A-F0-9]"
Except I am just looking for the empty lines which follow each message entry in the mailq log, rather than something that looks like the start of a valid message-ID. It is therefore better performance-wise, although the difference is only noticeable on very a-typical mailq log sizes.