
#!/bin/sh
# File	: cdot_rpt_crc-errors.sh
# By	: Maarten.deBoer@Atos.net, 230801
# Subject	: Script to collect (report) CRC-errors. For specific ports
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
LOG="${HOME}/log/${PGM}.log"
TMP="/tmp/${PGM}.$$"
SSH="/usr/bin/ssh -n"
HOSTNAME=`hostname |cut -d\. -f1`
RCFILE="${HOME}/etc/${PGM}.rc"
PORTLIST="${HOME}/etc/${PGM}.portlist"
CSV="/tmp/${PGM}.csv"
MAILTO="maarten.deboer@atos.net"


echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
touch ${TMP}
if [ -f ${RCFILE} ]; then
  echo "  RCFILE (${RCFILE}) found. Using ..."|tee -a ${LOG}
  . ${RCFILE}
fi  # RCFILE
if [ -f ${PORTLIST} ]; then
  cat ${PORTLIST}|grep -v ^#|while read LINE
  do
#    echo "${LINE}"
# CLUSTER;NODE;PORT;REMARKS;
    CLUSTER=`echo ${LINE}|awk -F\; '{print $1}'`
    NODE=`echo ${LINE}|awk -F\; '{print $2}'`
    PORT=`echo ${LINE}|awk -F\; '{print $3}'`
    REMARKS=`echo ${LINE}|awk -F\; '{print $4}'`
# ssh nlnaf100 'system node run -node nlnaf100-11 -command ifstat e0e'| grep -i crc
    DATI=`date +%Y-%m-%d" "%H:%M:%S`
# Non-primary u/c:     0  | CRC errors:      24495  | Runt frames:         0
# OR
#  CRC errors:      39964  | Runt frames:         0  | Fragment:            0
    CRC_ERRORS=`${SSH} ${CLUSTER} "system node run -node ${NODE} -command ifstat ${PORT}"|grep -i crc| cut -d'C' -f3| cut -d\: -f2| cut -d\| -f1`

    echo "${CLUSTER};${NODE};${PORT};${DATI};${CRC_ERRORS};${REMARKS}"|tee -a ${TMP}
  done  # LINE
  if [ "${MAILTO}" != "" ]; then
    cp ${TMP} ${CSV}
    date | mailx -a ${CSV} -s ":${HOSTNAME}: CRC-error report [${PGM} v${VER}]" ${MAILTO}
    echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
  fi  # MAILTO
else
  echo "  NO PORTLIST (${PORTLIST}) found. Exiting ..."|tee -a ${LOG}
fi  # PORTLIST

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

