是否有一个简单的命令可以找出 Linux 邮件队列中的当前消息数量?mailq
转储出详细列表,但不方便快速概览。
我正在使用 Ubuntu 和 postfix。
答案1
如果您只想知道延迟队列中的消息数量,那么以下内容应该可以快速为您提供答案:
find /var/spool/postfix/deferred -type f | wc -l
还有三个其他队列。请参阅http://www.porcupine.org/postfix/queueing.html了解详情。
答案2
您可以过滤输出并仅显示最后一行:
mailq | tail -n 1
答案3
与此相关,您还可以通过修改 Brian Showalter 的建议,使用命令“mail --headers”来获取邮箱中以 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
答案4
这是
find /var/spool/postfix/deferred -type f | wc -l
好主意,但如果我的 Zabbix-Agent 不是以 root 身份运行,它就不起作用。所以我用了这个
NUM=`mailq | grep -E "Requests" | awk '{print $5}'`; if [ -z "$NUM" ]; then echo "0"; else echo $NUM; fi
用于我自己的用户参数。