显示 Linux 邮件队列中的消息数量

显示 Linux 邮件队列中的消息数量

是否有一个简单的命令可以找出 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

用于我自己的用户参数。

相关内容