Czy istnieje proste polecenie, aby sprawdzić bieżącą liczbę wiadomości w kolejce poczty linux? mailq
zrzuca pełną listę, ale nie jest to wygodne dla szybkiego przeglądu.
Używam Ubuntu i Postfix.
Czy istnieje proste polecenie, aby sprawdzić bieżącą liczbę wiadomości w kolejce poczty linux? mailq
zrzuca pełną listę, ale nie jest to wygodne dla szybkiego przeglądu.
Używam Ubuntu i Postfix.
Odpowiedzi:
Jeśli chcesz tylko poznać liczbę wiadomości znajdujących się w odroczonej kolejce, poniższe informacje powinny dać ci szybką odpowiedź:
find /var/spool/postfix/deferred -type f | wc -l
Istnieją trzy inne kolejki. Szczegółowe informacje można znaleźć na stronie http://www.porcupine.org/postfix/queueing.html .
find /var/spool/mqueue -type f | wc -l
i to, find /var/spool/mqueue-rx -type f | wc -l
ponieważ mam dwie kolejki i nie używam Postfiksa.
Możesz filtrować dane wyjściowe i wyświetlać tylko ostatni wiersz:
mailq | tail -n 1
W związku z tym można również uzyskać liczbę wiadomości w skrzynce pocztowej przechowywanych w formacie mbox, modyfikując sugestię Briana Showaltera za pomocą polecenia „mail - headers”. Na przykład mam ten wiersz w moim pliku .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
To jest
find /var/spool/postfix/deferred -type f | wc -l
dobry pomysł, ale to nie działa, jeśli mój Zabbix-Agent nie działa jako root. Więc użyłem tego
NUM=`mailq | grep -E "Requests" | awk '{print $5}'`; if [ -z "$NUM" ]; then echo "0"; else echo $NUM; fi
dla mojego własnego parametru użytkownika.