Есть ли простая команда, чтобы узнать текущее количество сообщений в почтовой очереди Linux? mailq
выводит подробный список, но это не удобно для быстрого обзора.
Я использую Ubuntu и Postfix.
Есть ли простая команда, чтобы узнать текущее количество сообщений в почтовой очереди Linux? mailq
выводит подробный список, но это не удобно для быстрого обзора.
Я использую Ubuntu и Postfix.
Ответы:
Если вы просто хотите узнать количество сообщений, находящихся в отложенной очереди, то быстрый ответ должен дать следующее:
find /var/spool/postfix/deferred -type f | wc -l
Есть три другие очереди. См. Http://www.porcupine.org/postfix/queueing.html для получения подробной информации.
find /var/spool/mqueue -type f | wc -l
и так find /var/spool/mqueue-rx -type f | wc -l
как у меня есть две очереди и я не использую постфикс.
Вы можете отфильтровать вывод и отобразить только последнюю строку:
mailq | tail -n 1
В связи с этим вы также можете получить количество сообщений в вашем почтовом ящике, сохраненных в формате mbox, изменив предложение Брайана Шоуолтера с помощью команды «mail --headers». Например, у меня есть эта строка в моем файле .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-агент не запущен от имени пользователя root. Так что я использовал это
NUM=`mailq | grep -E "Requests" | awk '{print $5}'`; if [ -z "$NUM" ]; then echo "0"; else echo $NUM; fi
для моего собственного UserParameter.