Apakah ada perintah sederhana untuk mengetahui jumlah pesan saat ini dalam antrian surat linux? mailq
membuang daftar verbose, tetapi tidak nyaman untuk ikhtisar cepat.
Saya menggunakan Ubuntu dan postfix.
Apakah ada perintah sederhana untuk mengetahui jumlah pesan saat ini dalam antrian surat linux? mailq
membuang daftar verbose, tetapi tidak nyaman untuk ikhtisar cepat.
Saya menggunakan Ubuntu dan postfix.
Jawaban:
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.
find /var/spool/mqueue -type f | wc -l
dan ini find /var/spool/mqueue-rx -type f | wc -l
karena saya memiliki dua antrian dan tidak menggunakan postfix.
Anda bisa memfilter output dan hanya menampilkan baris terakhir:
mailq | tail -n 1
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
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.