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.


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.


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

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

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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.