Menampilkan jumlah pesan dalam antrian surat linux


12

Apakah ada perintah sederhana untuk mengetahui jumlah pesan saat ini dalam antrian surat linux? mailqmembuang daftar verbose, tetapi tidak nyaman untuk ikhtisar cepat.

Saya menggunakan Ubuntu dan postfix.


1
Apa agen transfer surat yang Anda gunakan?
Bart Silverstrim

seperti kata bart, beri tahu kami apa yang MTA Anda gunakan sehingga kami dapat memberikan Anda pendekatan yang lebih spesifik dan benar.
Prix

sendmail, maaf.
dmp

Yakin itu sendmail, bukan postfix? Hanya memastikan ...
Bart Silverstrim

tangkapan yang bagus, postfix-nya bukan sendmail.
dmp

Jawaban:


25

Jika Anda hanya ingin mengetahui jumlah pesan yang duduk di antrian yang ditangguhkan, maka yang berikut ini akan memberi Anda jawaban cepat:

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

Ada tiga antrian lainnya. Lihat http://www.porcupine.org/postfix/queueing.html untuk detailnya.


1
dalam kasus saya ini adalah ini: find /var/spool/mqueue -type f | wc -ldan ini find /var/spool/mqueue-rx -type f | wc -lkarena saya memiliki dua antrian dan tidak menggunakan postfix.
Jeroen Wiert Pluimers

13

Anda bisa memfilter output dan hanya menampilkan baris terakhir:

mailq | tail -n 1

2
Itu ide yang bagus, tapi antriannya besar, jadi butuh waktu lama untuk mengembalikan hasilnya. Ada yang lebih cepat ..?
dmp

Jika antriannya benar-benar masif, mungkin ada masalah lain (kecuali Anda ISP atau layanan hosting surat). Anda seharusnya tidak memiliki cadangan yang begitu besar sehingga Anda harus menunggu beberapa menit untuk hasil ini ...?
Bart Silverstrim

Saya yakin ada masalah lain, tetapi itu akan muncul pertanyaan lain;)
dmp

3

Sebagai masalah terkait, Anda juga dapat memperoleh jumlah pesan di kotak surat Anda yang disimpan dalam format mbox, dengan memodifikasi saran Brian Showalter menggunakan perintah "mail - headers." Misalnya, saya memiliki baris ini di file .bashrc saya:

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

Ini adalah

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

ide yang bagus, tetapi tidak berfungsi jika Zabbix-Agent saya tidak berjalan sebagai root. Jadi saya menggunakan ini

NUM=`mailq | grep -E "Requests" | awk '{print $5}'`; if [ -z "$NUM" ]; then echo "0"; else echo $NUM; fi

untuk UserParameter saya sendiri.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.