Как мне посчитать сообщения mailq Postfix?


10

Как я могу получить количество сообщений в mailf Postfix? mailqКоманда отображать все письма в mailq, но я хотел бы знать только количество. Есть ли команда для этого. Моя ОС Centos 5.5.

Ответы:


20

Я использую это:

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

Вы можете передать вывод mailqчерез различные другие фильтры, такие как uniq, sortи wcполучить другую статистику.


Это не точно. Когда очередь Postfix пуста, затем запустите «mailq», мы получим «Очередь почты пуста», что также соответствует «^ [0-9A-Z]». И в такой ситуации это не совсем точно.
Энди

1
Лучшее регулярное выражение, ^[A-F0-9]которое правильно приводит к 0, когда почтовая очередь пуста. Я отредактировал ответ.
Ладададада

Как глупо, последняя строка вывода является отсчет
Джеффри

16

либо mailq | tail -n 1илиfind /var/spool/postfix/deferred -type f | wc -l

обе работы


1
Я получаю «682430 Кбайт в 26472 запросах». для первого и «23» для второго.
ограбить

0

Передайте выходной поток на wc, если требуется дальнейшая очистка, используйте grep.


0

я использую

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

кажется быстрее, чем grep, но не возвращает 0


0

Я использую:

mailq | grep -c "^ $"

По сути, это то же самое, что и ответ @ Ladadadada:

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

За исключением того, что я просто ищу пустые строки, которые следуют за каждой записью сообщения в журнале mailq, а не что-то, что выглядит как начало действительного идентификатора сообщения. Следовательно, это лучше с точки зрения производительности, хотя разница заметна только для очень типичных размеров журналов mailq.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.