
#!/bin/sh
# File	: aec_airco-status_chk.sh
# By	: Maarten.deBoer@atos.net
# Subject	: Script to check Atos Environment by Cli of Airco status
# Next:
# mailto: technologylab@atos.net,  status wijzig technologylab@atos.net
# Alert als CHK_SRV <> ok
#(0.2),240405	: From enc_airco_status.sh, Add: status-log in CSV
#(0.3),240405	: "alert" on status diff
PGM=`basename $0|cut -d\. -f1`
VER="0.3"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
MAILTO="maarten.deboer@atos.net"

CURL="/usr/bin/curl"
CHK_SRV="10.90.32.100"
CSV="${HOME}/data/${PGM}.csv"

WEBDIR="/var/www/html/techlab/airco"
HTML="${WEBDIR}/index.html"
HTML2="${WEBDIR}/index.html"
FONTSIZE1=6
FONTSIZE2=5
EXTURL="http://172.16.10.13/techlab/airco/"
TITLE="TechLab: Airco status page"


#===============================================
UPD_SUBDIR_PAGE()
{
TITLE2="${TITLE} : ${DIR}"
echo "<!DOCTYPE html>" > ${HTML2}
echo "<HTML>" >> ${HTML2}
echo "<HEAD>" >> ${HTML2}
echo "<META charset='UTF-8'>" >> ${HTML2}
echo "<META content=Maarten de Boer name=AUTHOR>" >> ${HTML2}
echo "<TITLE> ${DIR} </TITLE>" >> ${HTML2}
echo "<basefont face='verdana'>" >> ${HTML2}
echo "</HEAD>" >> ${HTML2}
echo "<BODY aLink=red bgColor=#D3D0D3 link=red text=#000000 vLink=#ff0000>" >> ${HTML2} 

echo "<TABLE BORDER=0 WIDTH='100%' cellspacing='0'>" >> ${HTML2}
echo "<TR WIDTH=100% HEIGHT=40px>" >> ${HTML2}
echo "  <TD bgColor=#0066A1>" >> ${HTML2}
echo "    <FONT COLOR=white face='verdana' size='6'> ${TITLE2} <BR> </FONT>" >> ${HTML2}
echo "    <DIV align=right>" >> ${HTML2}
echo "      <FONT COLOR=white face='verdana' size='-3'> For internal use. (c) Atos `date +%Y` </B> </FONT>" >> ${HTML2}
echo "    </DIV>" >> ${HTML2}
echo "  </TD>" >> ${HTML2}
echo "</TR>" >> ${HTML2}
echo "</TABLE>" >> ${HTML2}

#----------------------------------------------------------------
echo "<TABLE BORDER=1 WIDTH='100%' cellspacing='0'>" >> ${HTML2}
echo "  <TR WIDTH=100% >" >> ${HTML2}
echo "    <TH><FONT SIZE=${FONTSIZE2}> Date Time: </TH>" >> ${HTML2}
echo "    <TH><FONT SIZE=${FONTSIZE2}> Unit1: </TH>" >> ${HTML2}
echo "    <TH><FONT SIZE=${FONTSIZE2}> Unit2: </TH>" >> ${HTML2}
echo "    <TH><FONT SIZE=${FONTSIZE2}> Unit3: </TH>" >> ${HTML2}
echo "    <TH><FONT SIZE=${FONTSIZE2}> Unit4: </TH>" >> ${HTML2}
echo "  </TR>" >> ${HTML2}

tac ${CSV} |grep -v ^# |head -25 |while read LINE2
do
  echo "  LINE2=${LINE2}"
  DATI_S=`echo ${LINE2}|awk -F\; '{print $1}'`
  STATUS[1]=`echo ${LINE2}|awk -F\; '{print $2}'`
  STATUS[2]=`echo ${LINE2}|awk -F\; '{print $3}'`
  STATUS[3]=`echo ${LINE2}|awk -F\; '{print $4}'`
  STATUS[4]=`echo ${LINE2}|awk -F\; '{print $5}'`

  FORS="1 2 3 4"
  for F in ${FORS}
  do
    STATUS_BGC[${F}]=""
    ANSW=`echo ${STATUS[${F}]} |grep -i ok`
    if [ "${ANSW}" != "" ]; then
      STATUS_BGC[${F}]="lightgreen"
    fi 
    ANSW=`echo ${STATUS[${F}]}|grep -i alarm`
    if [ "${ANSW}" != "" ]; then
      STATUS_BGC[${F}]="red"
    fi 
  done

  if [ "${DATI_S}" != "" ]; then
    echo "  <TR WIDTH=100% >" >> ${HTML2}
    echo "    <TD><FONT SIZE=${FONTSIZE2}> ${DATI_S} </TD>" >> ${HTML2}
    echo "    <TD BGCOLOR=${STATUS_BGC[1]}><FONT SIZE=${FONTSIZE}> ${STATUS[1]} </TD>" >> ${HTML2}
    echo "    <TD BGCOLOR=${STATUS_BGC[2]}><FONT SIZE=${FONTSIZE}> ${STATUS[2]} </TD>" >> ${HTML2}
    echo "    <TD BGCOLOR=${STATUS_BGC[3]}><FONT SIZE=${FONTSIZE}> ${STATUS[3]} </TD>" >> ${HTML2}
    echo "    <TD BGCOLOR=${STATUS_BGC[4]}><FONT SIZE=${FONTSIZE}> ${STATUS[4]} </TD>" >> ${HTML2}

    echo "  </TR>" >> ${HTML2}
  fi  # STATUS <> ""
done  # LINE2

echo "</TABLE>" >> ${HTML2}
  

echo "  </TR>" >> ${HTML2}
echo "</TABLE>" >> ${HTML2}

#----------------------------------------------------------------
echo "<TABLE BORDER=0 WIDTH='100%' cellspacing='0'>" >> ${HTML2}
echo "<TR WIDTH=100% > " >> ${HTML2}
echo "  <TD bgColor=#0066A1 > " >> ${HTML2}
echo "    <FONT COLOR=white face='Verdana' size='1'>" >> ${HTML2}
echo "      <CENTER>" >> ${HTML2}
echo "Contact: |Content Owner: <A HREF="mailto:Maarten.deBoer@Atos.net">Maarten de Boer</A> |Last Update: `date`|[${PGM} v${VER}]<BR>" >> ${HTML2}
echo "For internal use (c) Atos S.A. `date +%Y` all rights reserved. Reproduction in whole or in part is prohibited without the written consent of Atos SA." >> ${HTML2}
echo "      </CENTER>" >> ${HTML2}
echo "    </FONT>" >> ${HTML2}
echo "  </TD>" >> ${HTML2}
echo "</TR>" >> ${HTML2}
echo "</TABLE>" >> ${HTML2}

echo "</BODY>" >> ${HTML2}
echo "</HTML>" >> ${HTML2}
}
# UPD_SUBDIR_PAGE
# ----------------------------------------------
CHK_CSV_DIFF()
{
echo ""
LINE_CNT=0
tac ${CSV} |grep -v ^# |head -2 |while read LINE3
do
  LINE_CNT=`expr ${LINE_CNT} + 1`
  echo "  LINE3(${LINE_CNT})=${LINE3}"
  STATUS_STR[${LINE_CNT}]=`echo ${LINE3}|cut -d\; -f2-`
  echo "    STATUS_STR[${LINE_CNT}]=${STATUS_STR[${LINE_CNT}]}"
  if [ ${LINE_CNT} -eq 2 ] && [ "${STATUS_STR[1]}" != "${STATUS_STR[2]}" ]; then
    echo "`date`" >> ${TMP}.mail
    echo "DIFF in STATUS compared to previous" >> ${TMP}.mail
    tac ${CSV} |grep -v ^# |head -25 >> ${TMP}.mail
  fi  # LINE_CNT} -eq 2 ...
done  # LINE3

}
# CHK_CSV_DIFF
#===============================================

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
if [ ! -d ${WEBDIR} ]; then
  echo "  NO WEBDIR (${WEBDIR}) found. Exiting ..."|tee -a ${LOG}
  exit 4
fi
touch ${TMP} ${TMP}.mail

CSVSTR=`date +%Y-%m-%d' '%H:%M:%S`

${CURL} ${CHK_SRV} --output ${TMP}
cat ${TMP}|while read LINE
do
  UNIT=`echo ${LINE} |grep unit |cut -d\< -f1|awk '{print $3}'`
  STATUS=`echo ${LINE} |grep unit |cut -d\< -f1|awk '{print $5,$6}'`
  if [ "${UNIT}" != "" ]; then
    echo "  UNIT=${UNIT} STATUS=${STATUS}|"
    CSVSTR="${CSVSTR};${STATUS}"
  fi
  echo "    CSVSTR=${CSVSTR}"
  echo "${CSVSTR}" > ${TMP}.csv
done  # LINE

# Write to CSV
#echo "`cat ${TMP}.csv`;" |tee -a ${CSV}

UPD_SUBDIR_PAGE

CHK_CSV_DIFF

if [ "${MAILTO}" != "" ] && [ -s ${TMP}.mail ]; then
  cat ${TMP}.mail |mailx -s ":${HOSTNAME}: Tech.Lab airco status check [${PGM} v${VER}]" "${MAILTO}"
  echo "  Mailed to ${MAILTO}" | tee -a ${LOG}
fi  # MAILTO}" != ""

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

