Bagaimana cara menghitung pesan dari mailq Postfix?

10

Bagaimana saya bisa mendapatkan jumlah pesan di mailq Postfix? mailqperintah menampilkan seluruh email di mailq tetapi saya ingin tahu hanya menghitung. Apakah ada perintah untuk ini. OS saya adalah centos 5.5.

Sai Ye Yan Naing Aye
sumber

Jawaban:

20

Saya menggunakan ini:

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

Anda dapat menyalurkan output mailqmelalui berbagai filter lain seperti uniq, sortdan wcuntuk mendapatkan statistik lainnya.

Ladadadada
sumber
Ini tidak akurat. Ketika antrian Postfix kosong, lalu jalankan 'mailq', kita akan mendapatkan "Antrian mail kosong" yang juga cocok dengan "^ [0-9A-Z]". Dan dalam situasi seperti itu tidak akurat.
andy
1
Regex yang lebih baik adalah ^[A-F0-9]yang menghasilkan 0 dengan benar ketika antrian email kosong. Saya sudah mengedit jawabannya.
Ladadadada
Sungguh konyol, baris terakhir dari output adalah hitungan
Geoffrey
16

salah satu mailq | tail -n 1ataufind /var/spool/postfix/deferred -type f | wc -l

keduanya bekerja

ulangan
sumber
1
Saya mendapatkan "682430 Kbytes dalam 26472 Permintaan." untuk yang pertama dan "23" untuk yang kedua.
merampok
0

Pipa ouput ke wc, jika diperlukan penyulingan lebih lanjut, gunakan grep.

Roma
sumber
0

saya menggunakan

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

tampaknya lebih cepat daripada grep tetapi tidak ada 0 pengembalian

Stavros
sumber
0

Saya menggunakan:

mailq | grep -c "^ $"

Ini pada dasarnya sama dengan jawaban @ Ladadadada tentang:

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

Kecuali saya hanya mencari baris kosong yang mengikuti setiap entri pesan di log mailq, daripada sesuatu yang tampak seperti awal dari ID-pesan yang valid. Oleh karena itu lebih baik dari segi kinerja, meskipun perbedaannya hanya terlihat pada ukuran log mailq yang sangat tipikal.

hiburn8
sumber