
#!/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="NORMAL"
#NAGIOSSEV="WARNING"
NAGIOSSEV="CRITICAL"

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

for FILER in `cat ${FILERS}|grep -v \^#|sort`
do
  echo "${FILER} ..."
  LINE="`${SSH} ${FILER} rdfile /etc/messages|grep -i noMemory|tail -1`"
# If line is not empty then check for 1st time & alert if so
  if [ "${LINE}" != "" ]; then
# 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  # RC

  fi  # LINE empty

done  # FILER

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

