Có một lệnh đơn giản để tìm ra số lượng thư hiện tại trong hàng đợi thư linux không? mailq
bỏ ra một danh sách dài dòng, nhưng nó không thuận tiện cho một cái nhìn tổng quan nhanh chóng.
Tôi đang sử dụng Ubuntu và postfix.
Có một lệnh đơn giản để tìm ra số lượng thư hiện tại trong hàng đợi thư linux không? mailq
bỏ ra một danh sách dài dòng, nhưng nó không thuận tiện cho một cái nhìn tổng quan nhanh chóng.
Tôi đang sử dụng Ubuntu và postfix.
Câu trả lời:
Nếu bạn chỉ muốn biết số lượng tin nhắn trong hàng đợi, thì những điều sau đây sẽ giúp bạn có câu trả lời nhanh:
find /var/spool/postfix/deferred -type f | wc -l
Có ba hàng đợi khác. Xem http://www.porcupine.org/postfix/queueing.html để biết chi tiết.
find /var/spool/mqueue -type f | wc -l
và điều này find /var/spool/mqueue-rx -type f | wc -l
vì tôi có hai hàng đợi và không sử dụng postfix.
Bạn có thể lọc đầu ra và chỉ hiển thị dòng cuối cùng:
mailq | tail -n 1
Là một vấn đề liên quan, bạn cũng có thể có được số lượng thư trong hộp thư của mình được lưu trữ ở định dạng mbox, bằng cách sửa đổi đề xuất của Brian Showalter bằng lệnh "tiêu đề thư". Ví dụ: tôi có dòng này trong tệp .bashrc của mình:
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
Đây là
find /var/spool/postfix/deferred -type f | wc -l
ý tưởng tốt, nhưng nó không hoạt động nếu Zabbix-Agent của tôi không chạy như một root. Vì vậy, tôi đã sử dụng này
NUM=`mailq | grep -E "Requests" | awk '{print $5}'`; if [ -z "$NUM" ]; then echo "0"; else echo $NUM; fi
cho UserParameter của riêng tôi.