
#!/bin/sh
# File	: chk_atostechlab-status.sh
# By	: Maarten.deBoer@Atos.net, 210106
# Subject	: Script to check Atos TechLab env
#(0.3),210106	: Added SSH
PGM=`basename $0|cut -d\. -f1`
VER="0.3"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"

CONF="${HOME}/etc/${PGM}.conf"
DATA_CSV="${HOME}/data/atostechlab-status.csv"
MAILTO="atos@agrarix.it"

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
if [ ! -f ${CONF} ]; then
  echo "  CONF (${CONF}) NOT found. Exiting ..."|tee -a ${LOG}
  exit 3
fi

echo "# DATI ; NAME; IP ; STATUS ; CHECK ;" > ${DATA_CSV}
cat ${CONF}|grep -v ^#|while read LINE
do
  echo "  ${LINE}"
# Check if ping
  PING_IP=`echo ${LINE}|grep ping|awk '{print $1}'`
  if [ "${PING_IP}" != "" ]; then
    NAME=`echo ${LINE}|awk '{print $2}'`
    echo "    PING ${PING_IP} (${NAME})"
    ping -W 2 -c 2 ${PING_IP} 1> /dev/null 2>&1
    EC=${?}
    if [ ${EC} -eq 0 ]; then
      echo "      OK"
      echo "`date +%Y-%m-%d-%H-%M-%S`;${NAME};${PING_IP};OK (green);ping;" >> ${DATA_CSV}
    else
      echo "      Nok"
      echo "`date +%Y-%m-%d-%H-%M-%S`;${NAME};${PING_IP};NOT (red);ping;" >> ${DATA_CSV}
    fi  # EC
  fi  # PING_IP}" != ""
# Check if ssh
  SSH_IP=`echo ${LINE}|grep ssh|awk '{print $1}'`
  if [ "${SSH_IP}" != "" ]; then
    NAME=`echo ${LINE}|awk '{print $2}'`
    echo "    SSH ${SSH_IP} (${NAME})"
    ${SSH} ${SSH_IP} 'hostname' 1> /dev/null 2>&1
    EC=${?}
    if [ ${EC} -eq 0 ]; then
      echo "      OK"
      echo "`date +%Y-%m-%d-%H-%M-%S`;${NAME};${SSH_IP};OK (green);ssh;" >> ${DATA_CSV}
    else
      echo "      Nok"
      echo "`date +%Y-%m-%d-%H-%M-%S`;${NAME};${SSH_IP};NOT (red);ssh;" >> ${DATA_CSV}
    fi  # EC
  fi  # SSH_IP

done  # cat ${CONF}

# When MAILTO has address & is data in DATA_CSV
if [ "${MAILTO}" != "" ] && [ -s ${DATA_CSV} ]; then
  cat ${DATA_CSV} | mailx -s "atostechlab-status: [${PGM} v${VER}]" ${MAILTO}
  echo "  ${DATA_CSV} mailed to ${MAILTO}"|tee -a ${LOG}
fi

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

