Afficher le nombre de messages dans la file d'attente de messagerie Linux


12

Existe-t-il une commande simple pour connaître le nombre actuel de messages dans la file d'attente de messagerie Linux? mailqvide une liste détaillée, mais ce n'est pas pratique pour un aperçu rapide.

J'utilise Ubuntu et postfix.


1
Quel agent de transfert de courrier utilisez-vous?
Bart Silverstrim

comme Bart l'a dit, dites-nous quel MTA vous utilisez afin que nous puissions vous donner une approche plus précise et correcte.
Prix

sendmail, désolé.
dmp

Bien sûr, c'est sendmail, pas postfix? Je m'assure juste ...
Bart Silverstrim

bonne prise, son suffixe n'est pas sendmail.
dmp

Réponses:


25

Si vous souhaitez simplement connaître le nombre de messages se trouvant dans la file d'attente différée, les éléments suivants devraient vous fournir une réponse rapide:

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

Il y a trois autres files d'attente. Voir http://www.porcupine.org/postfix/queueing.html pour plus de détails.


1
dans mon cas, c'était ceci: find /var/spool/mqueue -type f | wc -let cela find /var/spool/mqueue-rx -type f | wc -lcar j'ai deux files d'attente et n'utilise pas de suffixe.
Jeroen Wiert Pluimers

13

Vous pouvez filtrer la sortie et afficher uniquement la dernière ligne:

mailq | tail -n 1

2
C'est une bonne idée, mais la file d'attente est énorme, il faut donc beaucoup de temps pour retourner un résultat. Quelque chose de plus rapide ..?
dmp

Si la file d'attente est vraiment très volumineuse, il peut y avoir un autre problème (sauf si vous êtes un FAI ou un service d'hébergement de messagerie). Vous ne devriez pas avoir une sauvegarde si énorme que vous devez attendre quelques minutes pour ces résultats ...?
Bart Silverstrim

Je suis sûr qu'il y a un autre problème, mais cela viendra dans une autre question;)
dmp

3

Par ailleurs, vous pouvez également obtenir le nombre de messages de votre boîte aux lettres stockés au format mbox, en modifiant la suggestion de Brian Showalter à l'aide de la commande «mail --headers». Par exemple, j'ai cette ligne dans mon fichier .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

C'est

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

bonne idée, mais cela ne fonctionne pas si mon Zabbix-Agent n'est pas exécuté en tant que root. J'ai donc utilisé ça

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

pour mon propre UserParameter.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.