Visualizza il numero di messaggi nella coda di posta di Linux


12

Esiste un semplice comando per scoprire il numero corrente di messaggi nella coda di posta di Linux? mailqscarica un elenco dettagliato, ma non è conveniente per una rapida panoramica.

Sto usando Ubuntu e Postfix.


1
Quale agente di trasferimento di posta stai usando?
Bart Silverstrim,

come ha detto Bart, dicci quale MTA stai usando in modo che possiamo darti un approccio più specifico e corretto.
Prix

sendmail, scusa.
dmp

Sicuro è sendmail, non postfix? Solo per essere sicuro ...
Bart Silverstrim,

buona cattura, il suo postfisso non sendmail.
dmp

Risposte:


25

Se vuoi solo conoscere il numero di messaggi nella coda posticipata, allora dovresti ottenere una risposta rapida:

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

Ci sono altre tre code. Vedi http://www.porcupine.org/postfix/queueing.html per i dettagli.


1
nel mio caso era questo: find /var/spool/mqueue -type f | wc -le questo find /var/spool/mqueue-rx -type f | wc -lperché ho due code e non uso Postfix.
Jeroen Wiert Pluimers,

13

È possibile filtrare l'output e visualizzare solo l'ultima riga:

mailq | tail -n 1

2
È una buona idea, ma la coda è enorme, quindi ci vuole molto tempo per restituire un risultato. Qualcosa di più veloce ..?
dmp

Se la coda è davvero enorme, potrebbe esserci un altro problema (a meno che tu non sia un ISP o un servizio di hosting di posta). Non dovresti avere un backup così grande che devi aspettare qualche minuto per questi risultati ...?
Bart Silverstrim,

Sono sicuro che c'è un altro problema, ma questo arriverà in un'altra domanda;)
dmp

3

Come questione correlata, puoi anche ottenere il numero di messaggi nella tua casella di posta memorizzati nel formato mbox, modificando il suggerimento di Brian Showalter usando il comando "mail - headers". Ad esempio, ho questa riga nel mio file .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

Questo è

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

buona idea, ma non funziona se il mio Zabbix-Agent non viene eseguito come root. Quindi l'ho usato

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

per il mio UserParameter.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.