
#!/bin/sh
# File	: chk_dfm_msgs.sh
# By	: Maarten.deBoer@Atos.net, 150630
# Subject	: Check if DFM is still generating messages into /var/log/messages
#(0.2)	: Mod; date
#(0.3)	: Mode LASTDAY+HRA
#(0.4)	: Added --day (only) >no hour check
#(0.5)	: Mod LASTDATE
#(0.6)	: Mod LASTDATE
#(0.7)	: Added LASTLINE, Mod. grep FSOD -> sudo cat ...
#(0.8)	: Mod. CURDATEHR
#set -x
PGM="`basename $0|cut -d\. -f1`"
VERSION="0.8"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
MESSAGES="/var/log/messages"
ALERT="/tmp/${PGM}.alert"
HOSTNAME="`hostname|cut -d\. -f1`"
MAIL="" 
MAILTO="maarten.deboer@atos.net"
MAILFILE="${TMP}.mail"
HOURCHK=1

USAGE()
{
  echo "Usage: ${PGM} [-h] [-V] [-x] [-m] [--help] [--mail]"
  echo "  Version: ${VERSION}"
  echo "  options          :"
  echo "    -h | --help    : this help"
  echo "    -d | --day     : Day check (no hour check)"
  echo "    -m | --mail    : do send Mail"
  echo "    --mailto       : MAILTO (${MAILTO})"
  echo "    -V             : Version"
  echo "    -x             : set -x"
}

# Check options
while [ $# -gt 0 ]
  do
  case $1 in
    -h | --help) USAGE; exit 1 ;;
    --mailto) MAILTO=${2}; MAIL=1; shift ;;
    -d | --day) HOURCHK="" ;;
    -m | --mail) MAIL=1 ;;
    -V) echo "${PGM}: v${VERSION}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option $1 not known."; USAGE; exit 1 ;;
  esac
    shift
done

echo "`date`: ${PGM} v${VERSION} started."|tee -a ${LOG}
touch ${TMP}

CURDATE="`date +%b' '%e`"
CURDATEHR="`date +%b' '%e' '%H`"

sudo cat ${MESSAGES}|grep FSOD|tail -1

# Check wat the Date+HR was of the last messages
LASTDATEHR="`sudo cat ${MESSAGES}|grep FSOD|tail -1|cut -d\: -f1`"
# Get only the 1st 6 chars of the last message
LASTDATE="`sudo cat ${MESSAGES}|grep FSOD|tail -1|cut -c1-6`"
if [ ${HOURCHK} ] && [ "${LASTDATEHR}" != "${CURDATEHR}" ]; then
  echo "  Last messages was from more then an hour (${LASTDATEHR}<>${CURDATEHR}) ago.  "|tee -a ${LOG} ${MAILFILE}
  echo "Last message:" >> ${MAILFILE}
  echo "`sudo cat ${MESSAGES}|grep FSOD|tail -1`" >> ${MAILFILE}
  echo "" >> ${MAILFILE}
  echo "Keep an eye on DFM. And check if events are generated." >> ${MAILFILE}
fi  # LASTHR
if [ "${LASTDATE}" != "${CURDATE}" ]; then
  echo "  Last messages was from a day (${LASTDATE}<>${CURDATE}) ago.  "|tee -a ${LOG} ${MAILFILE}
  echo "Last message:" >> ${MAILFILE}
  echo "`sudo cat ${MESSAGES}|grep FSOD|tail -1`" >> ${MAILFILE}
  echo "" >> ${MAILFILE}
  echo "A restart of DFM might be wise." >> ${MAILFILE}
fi

if [ ${MAIL} ] && [ -s ${MAILFILE} ] ; then  # If size > 0 = NO file
  echo "  Sending mail to ${MAILTO} ..."|tee -a ${LOG}
  cat ${MAILFILE}|mailx -s ":${HOSTNAME}: Check DFM messages [${PGM} v${VERSION}]" ${MAILTO}
  rm ${MAILFILE}
fi

rm ${TMP}
echo "`date`: ${PGM} finished."|tee -a ${LOG}
exit 0

