
#!/bin/sh
# File  : chk_msgfile_noMemory.sh
# By    : Maarten.DeBoer@Atos.net, 150410
# Subject       : A script to check messages-file on noMemory
PGM="`basename $0|cut -d\. -f1`"
TMP="/tmp/${PGM}.$$.asc"
VER="0.1"
LOG="${HOME}/log/${PGM}.log"
FILERS="${HOME}/etc/filers"
SSH="/usr/bin/ssh -n"
LAST="${HOME}/data/${PGM}.last"

CI="`hostname|cut -d\. -f1`"

NAGIOSSEV="CRITICAL"
#NAGIOSSEV="WARNING"
#NAGIOSSEV="NORMAL"

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

for FILER in `cat ${FILERS}|grep -v \^#|sort`
do
  LINE="`${SSH} ${FILER} rdfile /etc/messages|grep -i noMemory|tail -1`"
# Get the 1st(date) part of the line
  DATEPART="`echo ${LINE}|cut -d\[ -f1`"

  echo "${FILER}: ${LINE} (${PART})"

  grep "${FILER}: ${DATEPART}" ${LAST}
  RC=${?}
# If line is not in last-file, msg has not been seen yet. So alert
  if [ ${RC} -ne 0 ]; then
    MSGSTR="CI=${FILER} ${LINE} [${PGM}]"
    /usr/bin/logger -t NOTIFY FSOD-SUPPORT ${NAGIOSSEV} "${MSGSTR}"
    echo "  logger -t NOTIFY FSOD-SUPPORT ${NAGIOSSEV} ${MSGSTR}" >> ${LOG}
# Then save message line in last-file
    echo "${FILER}: ${LINE}" >> ${LAST}
  fi

done  # FILER

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

