
#!/bin/sh
# File	: cdot_chk_event_log.sh
# By	: Maarten.deBoer@atos.net, 2017-07-20
# Subject	: Script to check cDOT event log for some period and string
#
PGM="`basename $0|cut -d\. -f1`"
VER="0.1"
TMP="/tmp/${PGM}.$$"
ASC="/tmp/${PGM}.asc"
MAIL=""
MAILTO="maarten.deboer@atos.net"
CLUSTERS="${HOME}/etc/clusters"
SSH="/usr/bin/ssh -n"
YESTERDAY=""

FILTER="[*]?"
STRING=""
DDATE="yesterday"

USAGE()
{
  echo "Usage: ${PGM} [options]"
  echo "  Version: ${VERSION}"
  echo "  options          :"
  echo "    -d             : -d of Date (-d ${DDATE})"
  echo "    -f             : Filter cluster (${FILTER})"
  echo "    -s             : event-String (${STRING})"
  echo "    -h | --help    : this help"
  echo "    -m | --mail    : do send Mail"
  echo "    --mailto       : change MAILTO address & do send mail (${MAILTO})"
  echo "    -y             : for period of Yesterday"
  echo "    -V             : Version"
  echo "    -x             : set -x"
}

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

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

if [ ${YESTERDAY} ]; then
  DDATE="yesterday"
#  TIMEPERIOD="\" `date -d yesterday +%m/%d/%Y` 00:00:00\"..\"`date +%m/%d/%Y` 00:00:00\" "
fi

TIMEPERIOD="\" `date -d ${DDATE} +%m/%d/%Y` 00:00:00\"..\"`date +%m/%d/%Y` 00:00:00\" "

echo "DDATE=${DDATE}"
echo "FILTER=${FILTER}"
echo "MAILTO=${MAILTO}"
echo "STRING=${STRING}"
echo "TIMEPERIOD=${TIMEPERIOD}"
echo "YESTERDAY=${YESTERDAY}"

sleep 5

touch ${TMP} ${ASC}

for CLUSTER in `cat ${CLUSTERS}|grep -v \^#|awk -F\; '{print $1}'|grep "${FILTER}"`
do
  echo ${CLUSTER}
  ${SSH} ${CLUSTER} "event log show -time ${TIMEPERIOD} -event *${STRING}* " | tee -a ${TMP}

done  # for


if [ ${MAIL} ]; then
  cp ${TMP} ${ASC}
  echo "cDOT event log attached in .ASC-file over periode ${TIMEPERIOD}, with cluster-filer=${FILTER} and string-filer=${STRING}. Best read with Wordpad." | mailx -a ${ASC} -s "@${HOSTNAME}: Check of cDOT event log [${PGM} v${VER}]" "${MAILTO}"
  echo "`date` Mailed to ${MAILTO}" |tee -a ${LOG}

fi




rm ${TMP} ${ASC}
exit 0

