xref: /freebsd/usr.sbin/periodic/etc/daily/440.status-mailq (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
181ea85a8SBrad Davis#!/bin/sh
281ea85a8SBrad Davis#
381ea85a8SBrad Davis#
481ea85a8SBrad Davis
581ea85a8SBrad Davis# If there is a global system configuration file, suck it in.
681ea85a8SBrad Davis#
781ea85a8SBrad Davisif [ -r /etc/defaults/periodic.conf ]
881ea85a8SBrad Davisthen
981ea85a8SBrad Davis    . /etc/defaults/periodic.conf
1081ea85a8SBrad Davis    source_periodic_confs
1181ea85a8SBrad Davisfi
1281ea85a8SBrad Davis
1381ea85a8SBrad Daviscase "$daily_status_mailq_enable" in
1481ea85a8SBrad Davis    [Yy][Ee][Ss])
1581ea85a8SBrad Davis	if [ ! -x /usr/bin/mailq ]
1681ea85a8SBrad Davis	then
1781ea85a8SBrad Davis	    echo '$daily_status_mailq_enable is set but /usr/bin/mailq' \
1881ea85a8SBrad Davis		"isn't executable"
1981ea85a8SBrad Davis	    rc=2
2081ea85a8SBrad Davis	else
2181ea85a8SBrad Davis	    echo ""
2281ea85a8SBrad Davis	    echo "Mail in local queue:"
2381ea85a8SBrad Davis
2481ea85a8SBrad Davis	    rc=$(case "$daily_status_mailq_shorten" in
2581ea85a8SBrad Davis		[Yy][Ee][Ss])
2681ea85a8SBrad Davis		    mailq |
2781ea85a8SBrad Davis			egrep -e '^[[:space:]]+[^[:space:]]+@' |
2881ea85a8SBrad Davis			sort |
2981ea85a8SBrad Davis			uniq -c |
3081ea85a8SBrad Davis			sort -nr |
3181ea85a8SBrad Davis			awk '$1 >= 1 {print $1, $2}';;
3281ea85a8SBrad Davis		*)
3381ea85a8SBrad Davis		    mailq;;
3481ea85a8SBrad Davis	    esac | tee /dev/stderr |
35cf44d7bdSEric van Gyzen	    egrep -v '((Mail |m)queue is empty|Total requests)' | wc -l)
3681ea85a8SBrad Davis	    [ $rc -gt 0 ] && rc=1 || rc=0
3781ea85a8SBrad Davis
3881ea85a8SBrad Davis	    case "$daily_status_include_submit_mailq" in
3981ea85a8SBrad Davis	    [Yy][Ee][Ss])
40*38d2b4dbSMike Karels		if [ -f /etc/mail/submit.cf ] && mailq -Ac >/dev/null 2>&1
4181ea85a8SBrad Davis		then
4281ea85a8SBrad Davis		    echo ""
4381ea85a8SBrad Davis		    echo "Mail in submit queue:"
4481ea85a8SBrad Davis
4581ea85a8SBrad Davis		    rc_submit=$(case "$daily_status_mailq_shorten" in
4681ea85a8SBrad Davis			[Yy][Ee][Ss])
4781ea85a8SBrad Davis			    mailq -Ac |
4881ea85a8SBrad Davis				egrep -e '^[[:space:]]+[^[:space:]]+@' |
4981ea85a8SBrad Davis				sort |
5081ea85a8SBrad Davis				uniq -c |
5181ea85a8SBrad Davis				sort -nr |
5281ea85a8SBrad Davis				awk '$1 >= 1 {print $1, $2}';;
5381ea85a8SBrad Davis			*)
5481ea85a8SBrad Davis			    mailq -Ac;;
5581ea85a8SBrad Davis		    esac | tee /dev/stderr |
5681ea85a8SBrad Davis		    egrep -v '(mqueue is empty|Total requests)' | wc -l)
5781ea85a8SBrad Davis		    [ $rc_submit -gt 0 ] && rc=1
5881ea85a8SBrad Davis		fi;;
5981ea85a8SBrad Davis	    esac
6081ea85a8SBrad Davis	fi;;
6181ea85a8SBrad Davis
6281ea85a8SBrad Davis    *)  rc=0;;
6381ea85a8SBrad Davisesac
6481ea85a8SBrad Davis
6581ea85a8SBrad Davisexit $rc
66