리눅스 메일 대기열에 메시지 수 표시


12

리눅스 메일 대기열에서 현재 메시지 수를 찾는 간단한 명령이 있습니까? mailq자세한 목록을 덤프하지만 빠른 개요에는 편리하지 않습니다.

우분투와 postfix를 사용하고 있습니다.


1
어떤 메일 전송 에이전트를 사용하고 있습니까?
바트 실버 스트림

바트가 말한 것처럼, MTA가 무엇을 사용하는지 알려 주면보다 구체적이고 정확한 접근 방식을 제공 할 수 있습니다.
Prix

sendmail, 죄송합니다.
dmp

확실히 postfix가 아닌 sendmail입니까? 그냥 확인 ...
바트 Silverstrim

좋은 캐치, 접미사는 sendmail이 아닙니다.
dmp

답변:


25

지연된 큐에있는 메시지 수만 알고 싶다면 다음을 통해 빠른 답변을 얻을 수 있습니다.

find /var/spool/postfix/deferred -type f | wc -l

세 개의 다른 대기열이 있습니다. 자세한 내용은 http://www.porcupine.org/postfix/queueing.html 을 참조하십시오.


1
내 경우에는 이것이었다. find /var/spool/mqueue -type f | wc -l그리고 find /var/spool/mqueue-rx -type f | wc -l나는 두 개의 큐를 가지고 있고 postfix를 사용하지 않기 때문에.
Jeroen Wiert Pluimers

13

출력을 필터링하고 마지막 줄만 표시 할 수 있습니다.

mailq | tail -n 1

2
좋은 생각이지만 대기열이 방대하므로 결과를 반환하는 데 시간이 오래 걸립니다. 더 빠른 것 ..?
dmp

대기열이 실제로 방대한 경우 다른 문제가있을 수 있습니다 (ISP 또는 메일 호스팅 서비스가 아닌 경우). 백업 결과가 너무 커서이 결과를 위해 몇 분 정도 기다려야합니까 ...?
바트 실버 스트림

나는 또 다른 문제가 있다고 확신하지만 그것은 또 다른 질문에 올 것이다;)
dmp

3

관련하여 "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

1

이것은

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.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.