Esiste un semplice comando per scoprire il numero corrente di messaggi nella coda di posta di Linux? mailq
scarica un elenco dettagliato, ma non è conveniente per una rapida panoramica.
Sto usando Ubuntu e Postfix.
Esiste un semplice comando per scoprire il numero corrente di messaggi nella coda di posta di Linux? mailq
scarica un elenco dettagliato, ma non è conveniente per una rapida panoramica.
Sto usando Ubuntu e Postfix.
Risposte:
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.
find /var/spool/mqueue -type f | wc -l
e questo find /var/spool/mqueue-rx -type f | wc -l
perché ho due code e non uso Postfix.
È possibile filtrare l'output e visualizzare solo l'ultima riga:
mailq | tail -n 1
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
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.