Existe-t-il une commande simple pour connaître le nombre actuel de messages dans la file d'attente de messagerie Linux? mailq
vide une liste détaillée, mais ce n'est pas pratique pour un aperçu rapide.
J'utilise Ubuntu et postfix.
Si vous souhaitez simplement connaître le nombre de messages placés 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.
Vous pouvez filtrer la sortie et afficher uniquement la dernière ligne:
mailq | tail -n 1
De manière connexe, vous pouvez également obtenir le nombre de messages dans 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
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.