Linuxメールキュー内の現在のメッセージ数を確認する簡単なコマンドはありますか? mailq
は冗長なリストを出力しますが、概要を簡単に見るには不便です。
Ubuntuとpostfixを使用しています。
遅延キューにあるメッセージの数だけを知りたい場合は、次のようにすればすぐに答えが得られます。
find /var/spool/postfix/deferred -type f | wc -l
他に3つのキューがあります。詳細は http://www.porcupine.org/postfix/queueing.html を参照してください。
出力をフィルタリングして、最後の行のみを表示できます。
mailq | tail -n 1
関連事項として、コマンド「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
これは
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の場合。