#!/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