#!/bin/bash

ME=$(hostname)

PIDFILE=check_networks.pid
if [ -f $PIDFILE ] ; then
    OLDPID=$(cat $PIDFILE)
    OLDPROC=$(ps $OLDPID)
    if [ $? -eq 0 ] ; then
	exit 0 # Old process still running
    else
	echo "Ignoring stale pidfile for $OLDPROC"
    fi
fi

cleanup () {
    rm -f $PIDFILE
}

trap cleanup 0

echo $$ > $PIDFILE

while true; do
    if [ ! -f test-config ] ; then
	exit 0
    fi
    . test-config

    DATE=$(date -u +%F:%H:%M:%S)
    LOGFILE=/tmp/ping-log.${DATE}
    rm -f ${LOGFILE}
    for HOST in ${HOSTS}; do
	if [ ! -f test-config ] ; then
	    exit 0
	fi
        if [ ${HOST} != ${ME} ] ; then
            ping -q -c2 ${HOST} >/dev/null 2>&1
            error=$?
            DATE=$(date -u +%Y-%m-%d/%H:%M:%S.%N)
            if [ $error -eq 0 ] ; then
                echo "   ${DATE}: ${ME}  UP  ${HOST}" >> ${LOGFILE}
            else
                echo "   ${DATE}: ${ME} DOWN ${HOST}" >> ${LOGFILE}
            fi
        fi
    done
    sleep 10
done
