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

10

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

Сай Е Янь Наинг Ай
источник

Ответы:

20

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

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

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

Ladadadada
источник
Это не точно. Когда очередь 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.

hiburn8
источник