
#!/bin/sh
# File	: upd_status-page.sh
# By	: MaartenDeBoer, 2016-12-20
# Subject	: Script to update status-(WEB)page
#(0.2)	: Add colors
#(0.3)	: Add PGM v
PGM="`basename $0|cut -d\. -f1`"
VER="0.3"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"

INDIR="/mnt/nas/DATA/status/mailed"
PAGE="/var/www/status/index.html"

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

echo "<HTML>" > ${PAGE}
echo "  <HEAD>" >> ${PAGE}
echo "    <TITLE>" >> ${PAGE}
echo "Status page" >> ${PAGE}
echo "    </TITLE>" >> ${PAGE}
echo "  </HEAD>" >> ${PAGE}

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

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

echo "   <TR> " >> ${PAGE}
echo "    <TD>HOST</TD> " >> ${PAGE}
echo "    <TD>HOSTNAME</TD> " >> ${PAGE}
echo "    <TD>UPTIME</TD> " >> ${PAGE}
echo "    <TD>SYSTEMLOAD</TD> " >> ${PAGE}
echo "    <TD>USERS</TD> " >> ${PAGE}
echo "    <TD>Last upload (UTC)</TD> " >> ${PAGE}
echo "    <TD>PGM v</TD> " >> ${PAGE}
echo "   </TR> " >> ${PAGE}


cd ${INDIR}
# get list of First fileNAMEs (servernames)
ls -1 |grep -v index.html|cut -d\_ -f1|sort -u|while read FNAME
do
  echo ${FNAME}
  echo "   <TR> " >> ${PAGE}
# Search for latest file for the HOST(NAME)
  LASTFILE="`ls -1 ${FNAME}_*|sort|tail -1`"
  HOST="`grep HOSTNAME ${LASTFILE}|cut -d\= -f2`"
  UPTIMESTR="`grep UPTIME ${LASTFILE}|cut -d\= -f2`"
  UPTIMEDAYS="`echo ${UPTIMESTR}|cut -d\, -f1|cut -d' ' -f3`"
  USERS="`echo ${UPTIMESTR}| cut -d\, -f3`"
  SYSTEMLOAD="`echo ${UPTIMESTR}|cut -d\, -f4-6|cut -d\: -f2`"
  SLOAD1M="`echo ${UPTIMESTR}|cut -d\, -f4|cut -d\: -f2|cut -d\. -f1`"
  DATISTRUTC="`grep DATISTRUTC ${LASTFILE}|cut -d\= -f2`"
  PGMV="`grep PGM ${LASTFILE}|cut -d\= -f2`"

  echo "    <TD> ${FNAME} </TD> " >> ${PAGE}
  echo "    <TD> ${HOST} </TD> " >> ${PAGE}
  BGC=""
  if [ ${UPTIMEDAYS} -lt 7 ]; then
    BGC="red"
  fi
  if [ ${UPTIMEDAYS} -ge 7 ]; then
    BGC="orange"
  fi
  if [ ${UPTIMEDAYS} -ge 30 ]; then
    BGC="yellow"
  fi
  if [ ${UPTIMEDAYS} -ge 100 ]; then
    BGC="green"
  fi
  if [ ${UPTIMEDAYS} -ge 365 ]; then
    BGC="blue"
  fi
  echo "    <TD BGCOLOR=${BGC}> ${UPTIMEDAYS} days </TD> " >> ${PAGE}

  BGC=""
  if [ ${SLOAD1M} -ge 0 ]; then
    BGC="green"
  fi
  if [ ${SLOAD1M} -ge 1 ]; then
    BGC="yellow"
  fi
  if [ ${SLOAD1M} -ge 3 ]; then
    BGC="orange"
  fi
  if [ ${SLOAD1M} -ge 5 ]; then
    BGC="red"
  fi
  echo "    <TD BGCOLOR=${BGC}> ${SYSTEMLOAD} </TD> " >> ${PAGE}

  echo "    <TD> ${USERS} </TD> " >> ${PAGE}
  echo "    <TD> ${DATISTRUTC} </TD> " >> ${PAGE}
  echo "    <TD> ${PGMV} </TD> " >> ${PAGE}

#  echo "    <TD> ${UPTIMESTR} </TD> " >> ${PAGE}
  
  echo "   </TR> " >> ${PAGE}

done  # ls -1

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

echo "<BR>" >> ${PAGE}
echo "Last update `date`" >> ${PAGE}

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

exit 0

