
#!/bin/sh
# File	: ping_log_delta.sh
# By	: MaartenDeBoer.nl, 260414
# Subject	: Script to ping, some, destination(adresses) and log the delta (log 1x at a time)
#
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
LST="${HOME}/etc/${PGM}.lst"
DEST=""
PREV="/tmp/${PGM}.prev"
MAILTO="maarten@agrarix.nl"

if [ "${1}" != "" ]; then
  DEST="${1}" 
fi  # $1

echo "`date` ${PGM} v${VER} started."
echo "  LOG=${LOG}"
echo "  LST=${LST}"
echo "  DEST(1)=${DEST}"
sleep 1

if [ "${DEST}" != "" ]; then
  echo -n "    Ping to ${DEST} "
  ping -c 2 -W 2 ${DEST} 1>/dev/null 2>&1
  EC=${?}
  echo "is ${EC}(EC)"
  if [ ! -f ${PREV} ]; then
    touch ${PREV}
  fi  # PREV
# Check prev-status  
  PREV_EC=`grep "${DEST}" ${PREV}|cut -d\= -f2`
#  echo "${DEST}<=${PREV_EC}|"
# If PREV not found, then write anyhow
  if [ "${PREV_EC}" = "" ]; then
    echo "${DEST}=${EC}" > ${PREV}
  fi
  if [ "${PREV_EC}" != "" ] && [ ${EC} -ne ${PREV_EC} ]; then
    echo "`date` Ping to ${DEST} changed in ${EC}. Was ${PREV_EC}"|tee -a ${LOG}
    sleep 1
    echo "${DEST}=${EC}" > ${PREV}
    if [ "${MAILTO}" != "" ]; then
      echo "`date` Ping to ${DEST} changed in ${EC}. Was ${PREV_EC}"|mailx -s "PING monitor" ${MAILTO} 
      echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
    fi  # MAILTO
  else
    echo "      EC(${EC}) is same as PREV(${PREV_EC})"
  fi  # EC
fi  # DEST

echo "`date` ${PGM} v${VER} finished."
exit 0

