
#!/bin/ksh
# File	: upd_oci-status.sh
# By	: Maarten.deBoer, 200102
# Subject	: Script to update the OCI status
#(0.2),200102	: Upd
#(0.3),200103	: Upd RAU -> OCI
#(0.4),200103	: Upd; CNT-res -> ksh
#(0.5),200103	: Add; SYSLOAD
#(0.6),200108	: Add; legenda
#(0.7),200109	: Add; % color
#(0.8),200113	: Add URLs
PGM="`basename $0|cut -d\. -f1`"
VER="0.8"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"

DATADIR="${HOME}/data"
INCSV="${DATADIR}/oci-status.csv"
WWWDIR="/var/www/html/oci-status"
PAGE="${WWWDIR}/index.html"
DWHURL="https://161.89.56.22:41004/dwh/"
BIURL="https://161.89.56.22:9300/bi"
OCIURL="https://161.89.56.24:41004/"

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

if [ ! -d ${WWWDIR} ]; then
  echo "  NO WWWdir (${WWWDIR}) available. Exiting ..."|tee -a ${LOG}
  exit 3
fi  # WWWDIR
if [ ! -f ${INCSV} ]; then
  echo "  NO Input CSV (${INCSV}) available. Exiting ..."|tee -a ${LOG}
  exit 4
fi  # WWWDIR


echo "<!DOCTYPE html>" > ${PAGE}
echo "<HTML>" >> ${PAGE}
echo "<HEAD>" >> ${PAGE}
echo "<META charset='UTF-8'>" >> ${PAGE}
echo "<META content=Maarten de Boer name=AUTHOR>" >> ${PAGE}
echo "<TITLE>OCI-NL status:</TITLE>" >> ${PAGE}
echo "<basefont face='verdana'>" >> ${PAGE}
echo "</HEAD>" >> ${PAGE}
echo "<BODY aLink=blue bgColor=#D3D0D3 link=blue text=#000000 vLink=blue>" >> ${PAGE}
echo "<TABLE BORDER=0 WIDTH='100%'>" >> ${PAGE}
echo "<TR HEIGHT=40px>" >> ${PAGE}
echo "  <TD bgColor=#0066A1>" >> ${PAGE}
echo "    <FONT COLOR=white face='verdana' size='5'> <B>NetApp-OCI status in NL:</B> </FONT>" >> ${PAGE}
echo "    <BR>" >> ${PAGE}
echo "  </TD>" >> ${PAGE}
echo "</TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}

echo "<BR>" >> ${PAGE}

#echo "<H3> FireWall from this (nlxnetapp02 / `hostname -I|awk '{print $3}'`) server to OCI-RAU over p22 (SSH) </H3>" >> ${PAGE}
#echo "<H3> FireWall from the RAU-server to the OCI-server over p41004 (OCI) </H3>" >> ${PAGE}
#echo "<BR>" >> ${PAGE}


echo "<TABLE BORDER=1 WIDTH='100%'>" >> ${PAGE}

echo "  <TR>" >> ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='4'>Environment</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='4'>OCI status</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='4'>Hostname</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='4'>System load</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='4'>IP-addr</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='4'>ping</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='4'>nmap to</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='4'>nmap back</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='4'>To IP </FONT> </TD>" >>  ${PAGE}
echo "  </TR>" >> ${PAGE}

echo "  <TR>" >> ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='2'></FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='2'>From <BR> nlxnetapp02 <BR> (161.89.52.124) </FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='2'>To:</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='2'>based on uptime <BR> (1m, 5m, 15m)</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='2'></FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='2'></FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='2'>Using SSH</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='2'>via p41004</FONT> </TD>" >>  ${PAGE}
echo "    <TD> <FONT COLOR=black face='verdana' size='2'>To OCI-srv</FONT> </TD>" >>  ${PAGE}
echo "  </TR>" >> ${PAGE}


##  echo "${ENV};${HOSTNAME};${IPADDR};${PINGSTATUS};${NMAPTO};${NMAPBACK};${OCISRV};" >> ${OUTCSV}

RAU_CNT=0
RAU_OK=0
PING_CNT=0
PING_OK=0
FWTO_CNT=0
FWTO_OK=0
FWBCK_CNT=0
FWBCK_OK=0
cat ${INCSV}|sort -t\; -k2|while read LINE
do
  echo ${LINE}
  ENV=`echo ${LINE}|awk -F\; '{print $1}'`
  HOSTNAME=`echo ${LINE}|awk -F\; '{print $2}'`
  IPADDR=`echo ${LINE}|awk -F\; '{print $3}'`
  PINGSTATUS=`echo ${LINE}|awk -F\; '{print $4}'`
  NMAPTO=`echo ${LINE}|awk -F\; '{print $5}'`
  NMAPBACK=`echo ${LINE}|awk -F\; '{print $6}'|awk '{print $1,$2}'`
  OCISRV=`echo ${LINE}|awk -F\; '{print $7}'`
  OCISTATUS=`echo ${LINE}|awk -F\; '{print $8}'`
  SYSLOAD=`echo ${LINE}|awk -F\; '{print $9}'`

  echo "  <TR>" >> ${PAGE}
  echo "    <TD>" >>  ${PAGE}
  echo "      <FONT COLOR=black face='verdana' size='3'>" >> ${PAGE}
  echo "        ${ENV}</A>" >>  ${PAGE}
  echo "      </FONT>" >> ${PAGE}
  echo "    </TD>" >>  ${PAGE}
  BGC="lightblue"
  if [ "${OCISTATUS}" = "RAU-acquisition" ]; then
    BGC="green"
    RAU_CNT=`expr ${RAU_CNT} + 1`
    RAU_OK=`expr ${RAU_OK} + 1`
  fi
  if [ "${OCISTATUS}" = "OCI-proc's active" ]; then
    BGC="yellow"
  fi
  if [ "${OCISTATUS}" = "NO oci proc's found" ]; then
    BGC="red"
    RAU_CNT=`expr ${RAU_CNT} + 1`
  fi
  echo "    <TD BGCOLOR=${BGC}> <FONT COLOR=black face='verdana' size='3'>" >> ${PAGE}
  echo "        ${OCISTATUS}" >>  ${PAGE}
  echo "      </FONT> </TD>" >>  ${PAGE}
  echo "    <TD> <FONT COLOR=black face='verdana' size='3'>" >> ${PAGE}
  echo "        ${HOSTNAME}" >>  ${PAGE}
  echo "      </FONT> </TD>" >>  ${PAGE}
  echo "    <TD> <FONT COLOR=black face='verdana' size='2'>" >> ${PAGE}
  echo "        ${SYSLOAD}" >>  ${PAGE}
  echo "      </FONT> </TD>" >>  ${PAGE}
  echo "    <TD> <FONT COLOR=black face='verdana' size='3'>" >> ${PAGE}
  echo "        ${IPADDR}" >>  ${PAGE}
  echo "      </FONT> </TD>" >>  ${PAGE}
  BGC="lightblue"
  if [ "${PINGSTATUS}" = "ping = OK" ]; then
    BGC="green"
    PING_CNT=`expr ${PING_CNT} + 1`
    PING_OK=`expr ${PING_OK} + 1`
  fi
  if [ "${PINGSTATUS}" = "ping NOTok" ]; then
    BGC="red"
    PING_CNT=`expr ${PING_CNT} + 1`
  fi
  echo "    <TD BGCOLOR=${BGC}>" >>  ${PAGE}
  echo "      <FONT COLOR=black face='verdana' size='3'>" >> ${PAGE}
  echo "        ${PINGSTATUS}" >>  ${PAGE}
  echo "      </FONT> </TD>" >>  ${PAGE}
  BGC="lightblue"
  if [ "${NMAPTO}" = "22/tcp open ssh" ]; then
    BGC="green"
    FWTO_CNT=`expr ${FWTO_CNT} + 1`
    FWTO_OK=`expr ${FWTO_OK} + 1`
  fi
  if [ "${NMAPTO}" = "22/tcp filtered ssh" ]; then
    FWTO_CNT=`expr ${FWTO_CNT} + 1`
    BGC="red"
  fi
  echo "    <TD BGCOLOR=${BGC}>" >>  ${PAGE}
  echo "      <FONT COLOR=black face='verdana' size='3'>" >> ${PAGE}
  echo "        ${NMAPTO}" >>  ${PAGE}
  echo "      </FONT> </TD>" >>  ${PAGE}
  BGC=""
  if [ "${NMAPBACK}" = "41004/tcp open" ]; then
    BGC="green"
    FWBCK_CNT=`expr ${FWBCK_CNT} + 1`
    FWBCK_OK=`expr ${FWBCK_OK} + 1`
  fi
  if [ "${NMAPBACK}" = "41004/tcp filtered" ]; then
    BGC="red"
    FWBCK_CNT=`expr ${FWBCK_CNT} + 1`
  fi
  if [ "${NMAPBACK}" = "?? " ]; then
    BGC="lightblue"
    FWBCK_CNT=`expr ${FWBCK_CNT} + 1`
  fi
  echo "    <TD BGCOLOR=${BGC}>" >>  ${PAGE}
  echo "      <FONT COLOR=black face='verdana' size='3'>" >> ${PAGE}
  echo "        ${NMAPBACK}" >>  ${PAGE}
  echo "      </FONT> </TD>" >>  ${PAGE}
  echo "    <TD>" >>  ${PAGE}
  echo "      <FONT COLOR=black face='verdana' size='3'>" >> ${PAGE}
  echo "        ${OCISRV}" >>  ${PAGE}
  echo "      </FONT>" >> ${PAGE}
  echo "    </TD> </TR>" >> ${PAGE}

  echo "" > ${TMP}.var
  echo "RAU_OK=${RAU_OK}" >> ${TMP}.var
  echo "RAU_CNT=${RAU_CNT}" >> ${TMP}.var
  let "RAU_PRC= ( ${RAU_OK} *100 ) / ( ${RAU_CNT} )"
  echo "RAU_PRC=${RAU_PRC}" >> ${TMP}.var
  echo "PING_OK=${PING_OK}" >> ${TMP}.var
  echo "PING_CNT=${PING_CNT}" >> ${TMP}.var
  let "PING_PRC= ( ${PING_OK} *100 ) / ( ${PING_CNT} )"
  echo "PING_PRC=${PING_PRC}" >> ${TMP}.var
  echo "FWTO_OK=${FWTO_OK}" >> ${TMP}.var
  echo "FWTO_CNT=${FWTO_CNT}" >> ${TMP}.var
  let "FWTO_PRC= ( ${FWTO_OK} *100 ) / ( ${FWTO_CNT} )"
  echo "FWTO_PRC=${FWTO_PRC}" >> ${TMP}.var
  echo "FWBCK_OK=${FWBCK_OK}" >> ${TMP}.var
  echo "FWBCK_CNT=${FWBCK_CNT}" >> ${TMP}.var
  let "FWBCK_PRC= ( ${FWBCK_OK} *100 ) / ( ${FWBCK_CNT} )"
  echo "FWBCK_PRC=${FWBCK_PRC}" >> ${TMP}.var
done  # cat ${INCSV}

  echo "  <TR>" >> ${PAGE} 
  echo "    <TD> <FONT COLOR=black face='verdana' size='3'><I> OK counters: </FONT> </TD>" >> ${PAGE} 
  BGC="red"
  RAU_PRC=`grep "RAU_PRC=" ${TMP}.var|cut -d\= -f2`
  if [ ${RAU_PRC} -eq 100 ]; then
    BGC="green"
  fi
  echo "    <TD BGCOLOR=${BGC}> <FONT COLOR=black face='verdana' size='3'><I> RAU: `grep "RAU_OK=" ${TMP}.var|cut -d\= -f2` / `grep "RAU_CNT=" ${TMP}.var|cut -d\= -f2` = `grep "RAU_PRC=" ${TMP}.var|cut -d\= -f2`%  </FONT> </TD>" >> ${PAGE} 
  echo "    <TD> <FONT COLOR=black face='verdana' size='3'><I> </FONT> </TD>" >> ${PAGE} 
  echo "    <TD> <FONT COLOR=black face='verdana' size='3'><I> </FONT> </TD>" >> ${PAGE} 
  echo "    <TD> <FONT COLOR=black face='verdana' size='3'><I> </FONT> </TD>" >> ${PAGE} 
  BGC="red"
  PING_PRC=`grep "PING_PRC=" ${TMP}.var|cut -d\= -f2`
  if [ ${PING_PRC} -eq 100 ]; then
    BGC="green"
  fi
  echo "    <TD BGCOLOR=${BGC}> <FONT COLOR=black face='verdana' size='3'><I> `grep "PING_OK=" ${TMP}.var|cut -d\= -f2` / `grep "PING_CNT=" ${TMP}.var|cut -d\= -f2` = `grep "PING_PRC=" ${TMP}.var|cut -d\= -f2`% </FONT> </TD>" >> ${PAGE} 
  BGC="red"
  FWTO_PRC=`grep "FWTO_PRC=" ${TMP}.var|cut -d\= -f2`
  if [ ${FWTO_PRC} -eq 100 ]; then
    BGC="green"
  fi
  echo "    <TD BGCOLOR=${BGC}> <FONT COLOR=black face='verdana' size='3'><I> `grep "FWTO_OK=" ${TMP}.var|cut -d\= -f2` / `grep "FWTO_CNT=" ${TMP}.var|cut -d\= -f2` = `grep "FWTO_PRC=" ${TMP}.var|cut -d\= -f2`%</FONT> </TD>" >> ${PAGE} 
  BGC="red"
  FWBCK_PRC=`grep "FWBCK_PRC=" ${TMP}.var|cut -d\= -f2`
  if [ ${FWBCK_PRC} -eq 100 ]; then
    BGC="green"
  fi
  echo "    <TD BGCOLOR=${BGC}> <FONT COLOR=black face='verdana' size='3'><I> `grep "FWBCK_OK=" ${TMP}.var|cut -d\= -f2` / `grep "FWBCK_CNT=" ${TMP}.var|cut -d\= -f2` = ${FWBCK_PRC}%</FONT> </TD>" >> ${PAGE} 
  echo "    <TD> <FONT COLOR=black face='verdana' size='3'><I> </FONT> </TD>" >> ${PAGE} 
  echo "  </TR>" >> ${PAGE} 


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

echo "<BR>" >> ${PAGE}

# Legenda ------------------
FONTSIZE="3"
echo "<TABLE BORDER=0 >" >> ${PAGE}
echo "  <TR>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}><U>Color legenda: </TD>" >> ${PAGE}
echo "    <TD></TD>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}><U>OCI APPL:</TD>" >> ${PAGE}
echo "    <TD></TD>" >> ${PAGE}
echo "  </TR>" >> ${PAGE}

echo "  <TR>" >> ${PAGE}
echo "    <TD></TD>" >> ${PAGE}
echo "    <TD BGCOLOR='green'><FONT face= 'verdana' size=${FONTSIZE}>OK (RAU active & collecting)</TD>" >> ${PAGE}
echo "    <TD></TD>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}><A HREF="${OCIURL}" target=_blank>OCI-server</A></TD>" >> ${PAGE}
echo "  </TR>" >> ${PAGE}

echo "  <TR>" >> ${PAGE}
echo "    <TD></TD>" >> ${PAGE}
echo "    <TD BGCOLOR='yellow'><FONT face= 'verdana' size=${FONTSIZE}>Not be able to get OCI-status due to sudo-config</TD>" >> ${PAGE}
echo "    <TD></TD>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}><A HREF="${DWHURL}" target=_blank>DWH-server</A></TD>" >> ${PAGE}
echo "  </TR>" >> ${PAGE}

echo "  <TR>" >> ${PAGE}
echo "    <TD></TD>" >> ${PAGE}
echo "    <TD BGCOLOR='red'><FONT face= 'verdana' size=${FONTSIZE}>NO oci appl installed & active</TD>" >> ${PAGE}
echo "    <TD></TD>" >> ${PAGE}
echo "    <TD><FONT face= 'verdana' size=${FONTSIZE}><A HREF="${BIURL}" target=_blank>BI(Cognos)-server</TD>" >> ${PAGE}
echo "  </TR>" >> ${PAGE}

echo "  <TR>" >> ${PAGE}
echo "    <TD></TD>" >> ${PAGE}
echo "    <TD BGCOLOR='lightblue'><FONT face= 'verdana' size=${FONTSIZE}>Not be able to check (NO Linux system)</TD>" >> ${PAGE}
echo "  </TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}


echo "<TABLE BORDER=0 WIDTH='100%'>" >> ${PAGE}
echo "<TR>" >> ${PAGE}
echo "  <TD bgColor=#0066A1 >" >> ${PAGE}
echo "    <FONT COLOR=white face='Verdana' size='1'>" >> ${PAGE}
echo "      <CENTER>" >> ${PAGE}
echo "Contact: |Content Owner: <A HREF=mailto:Maarten.deBoer@Atos.net>Maarten de Boer</A> |Last Update: `date` [${PGM} v${VER}]<BR>" >> ${PAGE}
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." >> ${PAGE}
echo "      </CENTER>" >> ${PAGE}
echo "    </FONT>" >> ${PAGE}
echo "  </TD>" >> ${PAGE}
echo "</TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}

echo "</BODY>" >> ${PAGE}
echo "</HTML>" >> ${PAGE}

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

