web-dev-qa-db-ja.com

Linuxメールキュー内のメッセージ数を表示する

Linuxメールキュー内の現在のメッセージ数を確認する簡単なコマンドはありますか? mailqは冗長なリストを出力しますが、概要を簡単に見るには不便です。

Ubuntuとpostfixを使用しています。

12
dmp

遅延キューにあるメッセージの数だけを知りたい場合は、次のようにすればすぐに答えが得られます。

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

他に3つのキューがあります。詳細は http://www.porcupine.org/postfix/queueing.html を参照してください。

26
Brian Showalter

出力をフィルタリングして、最後の行のみを表示できます。

mailq | tail -n 1
14
Martin

関連事項として、コマンド「mail --headers」を使用してBrian Showalterの提案を変更することにより、mbox形式で保存されたメールボックス内のメッセージ数を取得することもできます。たとえば、.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
3
Greg Marks

これは

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

良い考えですが、Zabbix-Agentがルートとして実行されていないと機能しません。だからこれを使った

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

私自身のUserParameterの場合。

1
Mareg