Mostrar el número de mensajes en la cola de correo de Linux

12

¿Existe un comando simple para averiguar la cantidad actual de mensajes en la cola de correo de Linux? mailqdescarta una lista detallada, pero no es conveniente para una visión general rápida.

Estoy usando Ubuntu y postfix.

dmp
fuente
1
¿Qué agente de transferencia de correo estás usando?
Bart Silverstrim
Como dijo Bart, díganos qué MTA está utilizando para que podamos darle un enfoque más específico y correcto.
Premio
sendmail, lo siento.
dmp
¿Seguro que es sendmail, no postfix? Solo asegurándome ...
Bart Silverstrim
buena captura, su postfix no sendmail.
dmp

Respuestas:

25

Si solo desea saber la cantidad de mensajes que se encuentran en la cola diferida, lo siguiente debería obtener una respuesta rápida:

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

Hay otras tres colas. Ver http://www.porcupine.org/postfix/queueing.html para más detalles.

Brian Showalter
fuente
1
en mi caso fue esto: find /var/spool/mqueue -type f | wc -ly esto find /var/spool/mqueue-rx -type f | wc -lya que tengo dos colas y no uso postfix.
Jeroen Wiert Pluimers
13

Puede filtrar la salida y mostrar solo la última línea:

mailq | tail -n 1
Martín
fuente
2
Esa es una buena idea, pero la cola es masiva, por lo que lleva mucho tiempo devolver un resultado. ¿Algo más rápido ...?
dmp
Si la cola es realmente muy masiva, puede haber otro problema (a menos que sea un ISP o un servicio de alojamiento de correo). ¿No debería tener una copia de seguridad tan grande que tenga que esperar unos minutos para obtener estos resultados ...?
Bart Silverstrim
Estoy seguro de que hay otro problema, pero eso vendrá en otra pregunta;)
dmp
3

Como asunto relacionado, también puede obtener la cantidad de mensajes en su buzón almacenados en formato mbox, modificando la sugerencia de Brian Showalter usando el comando "mail --heders". Por ejemplo, tengo esta línea en mi archivo .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
Greg Marks
fuente
1

Esto es

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

buena idea, pero no funciona si mi Zabbix-Agent no se ejecuta como root. Así que usé esto

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

para mi propio UserParameter.

Mareg
fuente