Чи є проста команда дізнатись поточну кількість повідомлень у черзі електронної пошти 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 не працює як корінь. Тому я цим користувався
NUM=`mailq | grep -E "Requests" | awk '{print $5}'`; if [ -z "$NUM" ]; then echo "0"; else echo $NUM; fi
для мого власного UserParameter.