
#!/bin/ksh
# File	: ana_filer_msg_files.sh
# By	: Maarten.deBoer@atos.net, 180416
# Subject	: Count str(VSCAN)'s from message file
#
PGM="`basename $0|cut -d\. -f1`"
VER="0.1"
TMP="/tmp/${PGM}.$$"
MAILTO="maarten.deboer@atos.net"
HOSTNAME="`hostname|cut -d\. -f1`"
LOG="${HOME}/log/${PGM}.log"
GRAPHITESRV="10.192.109.224 2003"
GRAPHITE=""
SSH="/usr/bin/ssh -n"
NC="${HOME}/bin/nc"
GROUP="nl"
FILERS="${HOME}/etc/filers"
STRING="vscan"
FILTER="[?]*"
HOUR=""

USAGE()
{
  echo "Usage: $PGM [options] "
  echo "  Version: ${VER}"
  echo "  options:"
  echo "    --date    : specify DATE [yyyy-mm-dd hh:mm:ss] (${HOUR})"
  echo "    -s|--str  : search-string (${STRING})"
  echo "    -e|--etc  : Etc/filers-file (${FILERS})"
  echo "    -f        : Filter (${FILTER})"
  echo "    -h|--help : this help"
  echo "    -g|--graphite : sending to Graphite"
  echo "    -V : Version"
  echo "    -x : set -x"
}

# Check options
while [ $# -gt 0 ]
  do
  case ${1} in
    --date) DATE=${2}; shift ;;
    -e | --etc) FILERS=${2}; shift ;;
    -g | --graphite) GRAPHITE="1" ;;
    -s | --str) STRING="${2}"; shift ;;
    -h | --help) USAGE; exit 1 ;;
    -f) FILTER=${2}; shift ;;
    -V) echo "${PGM}: v${VER}"; exit 2 ;;
    -x)  set -x ;;
    *)  echo "Option ${1} not known."; USAGE; exit 1 ;;
  esac
    shift
done


DATE_HR="`date +%a' '%b' '%e' '%H`"
GDATE="`date +%s`"
if [ "${DATE}" != "" ]; then
  DATE_HR="`date +%a' '%b' '%e' '%H -d"${DATE}"`"
  GDATE="`date +%s -d"${DATE}"`"
fi

echo "DATE=${DATE}"
echo "GDATE=${GDATE}"
echo "FILERS=${FILERS}"
echo "FILTER=${FILTER}"
echo "GRAPHITE=${GRAPHITE}"
echo "DATE_HR=${DATE_HR}"
echo "STRING=${STRING}"

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

for FILER in `cat ${FILERS}|grep -v ^#|grep "${FILTER}"|awk -F\; '{print $1}'`
do
  echo "${FILER} ..."
  ${SSH} ${FILER} rdfile /etc/messages > ${TMP}
  STRCNT="`grep "${DATE_HR}" ${TMP}|grep ${STRING}|wc -l`"

  if [ ${GRAPHITE} ]; then
    echo "filer.msg-str.nl.${FILER}.${STRING}.cnt ${STRCNT} ${GDATE}"
    echo "filer.mgs-str.nl.${FILER}.${STRING}.cnt ${STRCNT} ${GDATE}"|${NC} ${GRAPHITESRV}
  fi

done

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

