Exibir o número de mensagens na fila de emails linux


12

Existe um comando simples para descobrir o número atual de mensagens na fila de emails linux? mailqdespeja uma lista detalhada, mas não é conveniente para uma visão geral rápida.

Estou usando o Ubuntu e postfix.


1
Qual agente de transferência de correio você está usando?
Bart Silverstrim

como o bart disse, diga-nos o que o MTA você está usando, para que possamos oferecer uma abordagem mais específica e correta.
Prix

sendmail, desculpe.
quer

Claro que é sendmail, não postfix? Basta ter certeza que ...
Bart Silverstrim

boa captura, seu postfix não é sendmail.
DMP

Respostas:


25

Se você deseja apenas saber o número de mensagens na fila adiada, o seguinte deve fornecer uma resposta rápida:

find /var/spool/postfix/deferred -type f | wc -l

Existem outras três filas. Consulte http://www.porcupine.org/postfix/queueing.html para obter detalhes.


1
no meu caso, era o seguinte: find /var/spool/mqueue -type f | wc -le isso find /var/spool/mqueue-rx -type f | wc -lcomo eu tenho duas filas e não uso o postfix.
Jeroen Wiert Pluimers

13

Você pode filtrar a saída e exibir apenas a última linha:

mailq | tail -n 1

2
É uma boa idéia, mas a fila é enorme, por isso leva muito tempo para retornar um resultado. Algo mais rápido ..?
quer

Se a fila for realmente muito grande, pode haver outro problema (a menos que você seja um ISP ou serviço de hospedagem de email). Você não deve ter um backup tão grande que espere alguns minutos por esses resultados ...?
Bart Silverstrim

Eu tenho certeza que há uma outra questão, mas que virá em outra pergunta;)
DMP

3

Como assunto relacionado, você também pode obter o número de mensagens em sua caixa postal armazenadas no formato mbox, modificando a sugestão de Brian Showalter usando o comando "mail --headers". Por exemplo, eu tenho essa linha no meu arquivo .bashrc:

if [ -s /var/mail/$(whoami) ] ; then echo -e "\nYou have $(ls -s -h /var/mail/$(whoami) | cut -d" " -f 1) of mail.  Number of messages: $(mail --file /var/mail/$(whoami) --headers | wc -l) ($(mail --file /var/mail/$(whoami) --headers | sed '/^>* *[0-9]/d' | wc -l) unread)" ; fi

1

Isto é

find /var/spool/postfix/deferred -type f | wc -l

boa ideia, mas não funcionará se meu Zabbix-Agent não for executado como raiz. Então eu usei isso

NUM=`mailq | grep -E "Requests" | awk '{print $5}'`; if [ -z "$NUM" ]; then echo "0"; else echo $NUM; fi

para o meu próprio UserParameter.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.