
#!/bin/sh
# File	: upd_filer-status-page.sh
# By	: MaartenDeBoer, 2016-12-20
# Subject	: Script to update status-(WEB)page
#(0.2)	: Add colors
#(0.3)	: Add PGM v
#(0.4)	: Add some ouput
#(0.5)	: Add upload time
#(0.6)	: Add INETIP
#(0.7)	: Add reverse lookup with INETIP
#(0.8)	: Added PAGEDIR, mod LOG
#(0.9)	: Added '% /'
#(0.10)	: Mod & Add SPEEDTEST
#(0.11)	: Mod SPEEDTEST TD & HOSTNAME, LOG
#(0.12)	: Mod HOSTNAME, UPTIMESTR
#(0.13)	: Some Atos MODs
#(0.14) : Added APPLICS, UNAME-R
#(0.15),180301	: Added Atos colors
#(0.16),180320	: Added nl19471@nlxmss04.bcklan.ao-srv.com at Header
#(0.17),180323	: Added NetApp (nlnaf's)
# Came from upd_status-page
#(0.1),180326	: Mod. for AFSP-server
PGM="`basename $0|cut -d\. -f1`"
VER="0.1"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
HOSTNAME="`hostname|cut -d\. -f1`"
FONTSIZE="1"
FONTFACE="verdana"

INDIR="${HOME}/mailed-filer-status"

#LOG="${PAGEDIR}/${PGM}.log"
TITLE="filer status"

#BASEDIR="/appl/mdr/afsp/NL"
BASEDIR="`pwd | sed 's/scripts//'|sed 's/bin//'`"
LOG="${BASEDIR}/log/${PGM}.log"
PAGE="${BASEDIR}/html/filer-status.html"
DBDIR="${BASEDIR}/data/database"

COUNTRY="`echo ${BASEDIR}| cut -d\/ -f6`"

echo "`date` ${PGM} v${VER} started. (${HOSTNAME})"|tee -a ${LOG}
touch ${TMP}
if [ ! -d ${PAGEDIR} ]; then
  echo "  Pagedir ${PAGEDIR} does NOT exist. Exiting ..."|tee -a ${LOG}
  exit 2
fi

echo "<!DOCTYPE html>" > ${PAGE}
echo "<HTML>" >> ${PAGE}
echo "<HEAD>" >> ${PAGE}
echo "<META charset='UTF-8'>" >> ${PAGE}
echo "<META name='author' content='Maarten de Boer' />" >> ${PAGE}
echo "<META name='author' content='Maarten de Boer' />" >> ${PAGE}
echo "<META name='generator' content='${PGM} v${VER}' />">> ${PAGE}
echo "<TITLE>${TITLE}</TITLE>" >> ${PAGE}
echo "<basefont face='verdana'>" >> ${PAGE}
echo "</HEAD>" >> ${PAGE}
echo "<BODY aLink=red bgColor=#D3D0D3 link=red text=#000000 vLink=red>" >> ${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='6'> <B>${TITLE}</B> </FONT>" >> ${PAGE}
echo "    <BR>" >> ${PAGE}
echo "    <DIV align=left>" >> ${PAGE}
echo "    </DIV>" >> ${PAGE}

echo "    <DIV align=right>" >> ${PAGE}
echo "      <FONT COLOR=white face='verdana' size='-3'>At `hostname`. </B> </FONT>" >> ${PAGE}
echo "      <FONT COLOR=white face='verdana' size='-3'>By sending to mdrglob@msssyscol01.bcklan.ao-srv.com </B> </FONT>" >> ${PAGE}
#echo "    <FONT COLOR=white face='verdana' size='-3'>For internal use. (c) Atos BTN 2016 </B> </FONT>" >> ${PAGE}
echo "    </DIV>" >> ${PAGE}
echo "  <TD>" >> ${PAGE}
echo "</TR>" >> ${PAGE}
echo "</TABLE>" >> ${PAGE}


echo "  <TABLE BORDER=1>" >> ${PAGE}

echo "   <TR> " >> ${PAGE}
echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> <B>HOST</B></TD> " >> ${PAGE}
echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> <B>Last upload (UTC)</B></TD> " >> ${PAGE}
echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> <B>Usage</B></TD> " >> ${PAGE}
echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> <B>CF status</B></TD> " >> ${PAGE}
echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> <B>Uptime</B></TD> " >> ${PAGE}
echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> <B># Vfilers</B></TD> " >> ${PAGE}
echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> <B># SMB-shares</B></TD> " >> ${PAGE}
echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> <B>Version</B></TD> " >> ${PAGE}
echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> <B>PGM v</B></TD> " >> ${PAGE}
echo "   </TR> " >> ${PAGE}


cd ${INDIR}
# get list of First FileNAMEs (HOSTnames)
ls -1 |grep -v index.html|cut -d\. -f1|sort -u|while read FNAME
do
  echo "   <TR> " >> ${PAGE}
# Search for latest file for the HOST(NAME)
  LASTFILE=`ls -1 ${FNAME}.*|sort|tail -1`
# Get all data from (last)file
  DATISTRUTC=`grep DATISTRUTC ${LASTFILE}|cut -d\= -f2`
  HOSTNAME=`grep 'HOSTNAME=' ${LASTFILE}|cut -d\= -f2`
  UPTIMESTR=`grep UPTIME ${LASTFILE}|cut -d\= -f2`
  USAGE=`grep 'USAGE=' ${LASTFILE}|cut -d\= -f2`
  CF_STATUS=`grep 'CF-STATUS=' ${LASTFILE}|cut -d\= -f2`
  VERSION=`grep 'VERSION=' ${LASTFILE}|cut -d\= -f2|cut -d\: -f1`
  PGMV="`grep PGM ${LASTFILE}|cut -d\= -f2|cut -d' ' -f2`"
  COMMENT=`grep 'COMMENT=' ${LASTFILE}|cut -d\= -f2`
  VFILERCNT=`grep 'VFILERCNT=' ${LASTFILE}|cut -d\= -f2`
  SMBSHARECNT=`grep 'SMBSHARECNT=' ${LASTFILE}|cut -d\= -f2`


  UPTIMEDAYS=`echo ${UPTIMESTR}|cut -d\, -f1|cut -d' ' -f3`
# Check for HH:MM in UPTIMEDAYS, then < 1 day
  UPTIMEHRS=`echo ${UPTIMEDAYS}|grep ':'|awk '{print $1}'`
  if [ "${UPTIMEHRS}" != "" ]; then
    UPTIMEDAYS=0
  fi

  echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> ${FNAME} </TD> " >> ${PAGE}

# Upload time check
  UPLBGC="lightgreen"
#  CHKDATISTR="`date --utc --date=\"-12 hours\" +%Y%m%d%H%M%S`"
  CHKDATISTR="`date --utc --date=\"-1 hours\" +%Y%m%d%H%M%S`"
  if [ ${DATISTRUTC} -lt ${CHKDATISTR} ]; then
    UPLBGC="yellow"
  fi
#  CHKDATISTR="`date --utc --date=\"-24 hours\" +%Y%m%d%H%M%S`"
  CHKDATISTR="`date --utc --date=\"-2 hours\" +%Y%m%d%H%M%S`"
  if [ ${DATISTRUTC} -lt ${CHKDATISTR} ]; then
    UPLBGC="orange"
  fi
#  CHKDATISTR="`date --utc --date=\"-48 hours\" +%Y%m%d%H%M%S`"
  CHKDATISTR="`date --utc --date=\"-4 hours\" +%Y%m%d%H%M%S`"
  if [ ${DATISTRUTC} -lt ${CHKDATISTR} ]; then
    UPLBGC="red"
  fi
  echo "    <TD BGCOLOR=${UPLBGC}> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> ${DATISTRUTC} </FONT> </TD> " >> ${PAGE}

  echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> ${USAGE} </TD> " >> ${PAGE}

  BGC=""
  ANSW=`echo ${CF_STATUS}|grep 'Failover enabled'`
  if [ "${ANSW}" != "" ]; then
    BGC="lightgreen"
  fi
  ANSW=`echo ${CF_STATUS}|grep 'Failover disabled'`
  if [ "${ANSW}" != "" ]; then
    BGC="yellow"
  fi
  ANSW=`echo ${CF_STATUS}|grep 'has taken over'`
  if [ "${ANSW}" != "" ]; then
    BGC="orange"
  fi
  ANSW=`echo ${CF_STATUS}|grep 'has been taken over'`
  if [ "${ANSW}" != "" ]; then
    BGC="red"
  fi
  echo "    <TD BGCOLOR=${BGC}> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> ${CF_STATUS} </TD> " >> ${PAGE}

# Uptime
  BGC=""
  BGC="red"
  if [ ${UPTIMEDAYS} -ge 7 ]; then
    BGC="orange"
  fi
  if [ ${UPTIMEDAYS} -ge 14 ]; then
    BGC="yellow"
  fi
  if [ ${UPTIMEDAYS} -ge 30 ]; then
    BGC="lightgreen"
  fi
  if [ ${UPTIMEDAYS} -ge 365 ]; then
    BGC="lightblue"
  fi
  if [ ${UPTIMEDAYS} -gt 0 ]; then
    echo "    <TD BGCOLOR=${BGC}> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> ${UPTIMEDAYS} days </TD> " >> ${PAGE}
  else
    echo "    <TD BGCOLOR=${BGC}> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> ${UPTIMEHRS} hours </TD> " >> ${PAGE}
  fi

  echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> ${VFILERCNT} </TD> " >> ${PAGE}

  echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> ${SMBSHARECNT} </TD> " >> ${PAGE}

  echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> ${VERSION} </TD> " >> ${PAGE}
  echo "    <TD> <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> ${PGMV} </TD> " >> ${PAGE}

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

  echo "${FNAME}|${DATISTRUTC}|${PGMV}|"
done  # ls -1

echo "   <TR> " >> ${PAGE}
echo "     <TD> " >> ${PAGE}
echo "       <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> <B>Legenda:</B> " >> ${PAGE}
echo "     </TD> " >> ${PAGE}
echo "     <TD> " >> ${PAGE}
echo "      <FONT COLOR=green SIZE=${FONTSIZE} FACE=${FONTFACE}> green <1 Hr <BR>" >> ${PAGE}
echo "      <FONT COLOR=yellow SIZE=${FONTSIZE} FACE=${FONTFACE}> yellow >1 Hr <BR>" >> ${PAGE}
echo "      <FONT COLOR=orange SIZE=${FONTSIZE} FACE=${FONTFACE}> orange >2 Hr <BR>" >> ${PAGE}
echo "      <FONT COLOR=red SIZE=${FONTSIZE} FACE=${FONTFACE}> red >4 Hr <BR>" >> ${PAGE}
echo "     </TD> " >> ${PAGE}
echo "     <TD> " >> ${PAGE}
echo "       <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> Usage" >> ${PAGE}
echo "     </TD> " >> ${PAGE}

echo "     <TD> " >> ${PAGE}
echo "      <FONT COLOR=green SIZE=${FONTSIZE} FACE=${FONTFACE}> green: enabled <BR>" >> ${PAGE}
echo "      <FONT COLOR=yellow SIZE=${FONTSIZE} FACE=${FONTFACE}> yellow: <BR>" >> ${PAGE}
echo "      <FONT COLOR=orange SIZE=${FONTSIZE} FACE=${FONTFACE}> orange: has taken over<BR>" >> ${PAGE}
echo "      <FONT COLOR=red SIZE=${FONTSIZE} FACE=${FONTFACE}> red: taken over by <BR>" >> ${PAGE}
echo "     </TD> " >> ${PAGE}
echo "     <TD> " >> ${PAGE}
echo "      <FONT COLOR=green SIZE=${FONTSIZE} FACE=${FONTFACE}> green >30 days  <BR>" >> ${PAGE}
echo "      <FONT COLOR=yellow SIZE=${FONTSIZE} FACE=${FONTFACE}> yellow >14 days  <BR>" >> ${PAGE}
echo "      <FONT COLOR=orange SIZE=${FONTSIZE} FACE=${FONTFACE}> orange >7 days  <BR>" >> ${PAGE}
echo "      <FONT COLOR=red SIZE=${FONTSIZE} FACE=${FONTFACE}> red  <7 days  <BR>" >> ${PAGE}
echo "      <FONT COLOR=blue SIZE=${FONTSIZE} FACE=${FONTFACE}> blue  >365 days  <BR>" >> ${PAGE}
echo "     </TD> " >> ${PAGE}
echo "     <TD> " >> ${PAGE}
echo "     </TD> " >> ${PAGE}
echo "     <TD> " >> ${PAGE}
echo "     </TD> " >> ${PAGE}
echo "     <TD> " >> ${PAGE}
echo "        <FONT SIZE=${FONTSIZE} FACE=${FONTFACE}> pgm " >> ${PAGE}
echo "     </TD> " >> ${PAGE}
echo "   </TR> " >> ${PAGE}

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

echo "  <BR>" >> ${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}

exit 0

