#!/bin/bash
VERSION='0.4'
VERSION_TEXT="Xymon spam-black-list-check.bash script: version ${VERSION}"
# clientlaunch.d/spam-black-list-check.cfg
#[smart]
# ENVFILE $XYMONCLIENTHOME/etc/xymonclient.cfg
# CMD $XYMONCLIENTHOME/ext/spam-black-list-check.cfg
# LOGFILE $XYMONCLIENTHOME/logs/spam-black-list-check.cfg
# INTERVAL 5m
# must install surblhost first (http://surblhost.sourceforge.net)
host="$1"
DASHES="
"
DASH="
"
COLUMN="spam"
HOSTTAG="spam"
COLOR="clear"
VERMSG="
Version: ${VERSION}"
DATE=$(date)
FEXEC='/usr/local/bin/surblhost -v'
if test ! "$XYMONHOME"
then
echo "template: XYMONHOME is not set"
exit 1
fi
${XYMONHOME}/bin/xymongrep "${HOSTTAG}:*" | while read line
do
#DEBUG# echo "DEBUG $BB $BBDISP \"status $MACHINE.$COLUMN $COLOR ${DATE} $MSG ${DASHES}${VERSION}\""
#DEBUG# echo "DEBUG $BB $BBDISP \"status $MACHINE.$COLUMN $COLOR ${DATE} $MSG ${DASHES}${VERSION}\""
#DEBUG# echo "set"
#DEBUG# set | grep -i xymon
#DEBUG# set | grep -i bb
#DEBUG# tmp="$?"
#DEBUG# echo "error code: $tmp"
# sample line:
# 130.39.19.45 reg005.hpc.lsu.edu # OS:linux ssh heartbleed:"reg005.hpc.lsu.edu 443"
set $line # To get one line of output from xymongrep
HOSTIP="$1"
MACHINEDOTS="$2"
MACHINE=$(echo $2 | sed 's/\./,/g')
shift
shift
shift
token=$(echo $1 | awk -F ':' '{print $1}' | sed 's/"//g')
while [[ "${HOSTTAG}" != "${token}" ]]
do
shift
token=$(echo $1 | awk -F ':' '{print $1}' | sed 's/"//g')
done
server=$(echo $1 | awk -F ':' '{print $2}' | sed 's/"//g')
# output should look like:
# 204.43.90.204.multi.surbl.org is not blocklisted
RESULT=$(${FEXEC} ${server} 2>/dev/null)
tmp=$(echo ${RESULT} | grep 'not blocklisted');
if [[ "X" != "X${tmp}" ]]
then
COLOR="green"
else
if [[ "X" == "X${RESULT}" ]]
then
COLOR="clear"
else
COLOR="red"
fi
fi
$XYMON $XYMSRV "status ${MACHINE}.$COLUMN $COLOR `date`
Test originating on $HOSTNAME
$HOSTTAG status for host ${server} ($MACHINEDOTS)
${RESULT}
This test utilizes surblhost (http://surblhost.sourceforge.net) to check
to see if the host is blacklisted as spam source.
Version: ${VERSION_TEXT}
"
done