ฉันจะนับข้อความของ mailq ของ Postfix ได้อย่างไร


10

ฉันจะรับจำนวนข้อความใน Mailq ของ Postfix ได้อย่างไร mailqคำสั่งแสดงอีเมลทั้งหมดใน mailq แต่ฉันต้องการที่จะรู้ว่านับเท่านั้นมีคำสั่งใด ๆ สำหรับเรื่องนี้ ระบบปฏิบัติการของฉันคือ centos 5.5

คำตอบ:


20

ฉันใช้สิ่งนี้:

mailq | grep -c "^[A-F0-9]"

คุณสามารถท่อส่งออกของmailqผ่านตัวกรองอื่น ๆ เช่นuniq, sortและwcจะได้รับสถิติอื่น ๆ


มันไม่ถูกต้อง เมื่อคิว Postfix ว่างแล้วเรียกใช้ 'mailq' เราจะได้รับ "Mail queue is empty" ซึ่งตรงกับ "^ [0-9A-Z]" และในสถานการณ์เช่นนี้มันไม่ถูกต้อง
andy

1
regex ที่ดีกว่าจะให้^[A-F0-9]ผลลัพธ์เป็น 0 อย่างถูกต้องเมื่อคิวจดหมายว่างเปล่า ฉันแก้ไขคำตอบแล้ว
Ladadadada

วิธีโง่บรรทัดสุดท้ายของการส่งออกคือการนับ
เจฟฟรีย์

16

อย่างใดอย่างหนึ่งmailq | tail -n 1หรือfind /var/spool/postfix/deferred -type f | wc -l

ทั้งงาน


1
ฉันได้รับ "682430 Kbytes ใน 26,472 คำขอ" สำหรับอันแรกและ "23" สำหรับอันที่สอง
ปล้น


0

ฉันใช้

/usr/sbin/postqueue -p | /usr/bin/tail -n1 | /usr/bin/gawk '{print $5}'

ดูเหมือนเร็วกว่า grep แต่ไม่มี 0 คืน


0

ฉันใช้:

mailq | grep -c "^ $"

นี่เป็นสิ่งเดียวกับคำตอบของ @ Ladadadada ของ:

mailq | grep -c "^ [A-F0-9]"

ยกเว้นฉันกำลังมองหาบรรทัดว่างที่ติดตามแต่ละข้อความในบันทึก mailq ไม่ใช่สิ่งที่ดูเหมือนจุดเริ่มต้นของรหัสข้อความที่ถูกต้อง ดังนั้นจึงเป็นการดีกว่าประสิทธิภาพที่ดีกว่าถึงแม้ว่าความแตกต่างจะสังเกตเห็นได้เฉพาะบนขนาดบันทึกเมลแบบทั่วไป

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.