X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=mailtest-check;h=1975dc960b71f2023b2162f3e929de7aed0b56e3;hb=17b4b5f6afb18accc328282d8ce7dcc5513e621d;hp=3fdefffb1050afca706edf6622ee5e061dc33185;hpb=d4366929e6e200155b010dc05ce74255ee6a45ed;p=distro-setup diff --git a/mailtest-check b/mailtest-check index 3fdefff..1975dc9 100755 --- a/mailtest-check +++ b/mailtest-check @@ -21,7 +21,7 @@ e() { $int || return 0; printf "mailtest-check: %s\n" "$*"; } # We run this cronjob along with sending the test email every 5 minutes, # so give it 1 minute to arrive, then if the latest email is older than # 7 minutes, the last 2 haven't arrived in a reasonable amount of time. -min_limit=7 +min_limit=8 # spamassassin checking takes about 8 seconds. only do that every @@ -76,16 +76,23 @@ esac getspamdpid() { if [[ ! $spamdpid || ! -d /proc/$spamdpid ]]; then - spamdpid=$(systemctl status spamassassin| sed -n '/^ *Main PID:/s/[^0-9]//gp' ||:) + spamdpid=$(systemctl show --property MainPID --value spamassassin | sed 's/^1$//' ||:) fi } getspamdpid +pr() { + cat >>/var/lib/prometheus/node-exporter/mailtest-check.prom.$$ +} +pr < 0 )) +EOF e spamdpid: $spamdpid if [[ ! $spamdpid ]]; then echo $HOSTNAME mailtest spamd pid not found. systemctl status spamassassin: systemctl status spamassassin fi tmpfile=$(mktemp) +declare -i unexpected=0 for folder in ${folders[@]}; do for from in ${froms[@]}; do latest= @@ -102,7 +109,10 @@ for folder in ${folders[@]}; do fi done <$tmpfile - if [[ $latest ]]; then + if [[ ! $latest ]]; then + # 10 is an arbitrary bad value + unexpected+=10 + else to=$(awk '/^Envelope-to: / {print $2}' $latest) last_sec=$(awk '/^Subject: / {print $4}' $latest) @@ -196,5 +206,15 @@ for folder in ${folders[@]}; do if (( last_sec <= limit )); then echo $HOSTNAME mailtest $folder $from $(date -d @$last_sec +'%a %m-%d %H:%M') fi + # usec = unix seconds + pr <