#!/bin/bash
# get status of IDE Raids

IP_IDE_RAID="ftp3 mod mod2 edoc1 x4"
V24_IDE_RAID="ora2 edoc2 ftp4"

for X in ${IP_IDE_RAID}
do
  cd /www/ide-raid/${X}
  for i in log html txt dif
  do
    mv -f status.$i status.$i.old 2>/dev/null
  done
  mv -f temperatures.txt temperatures.txt.old 2>/dev/null
  #
  wget -T 60 -o status.log -O status.html http://${X}.d.maint/status
  RC=$?
  touch status.html
  if [ ! "${RC}" = "0" ]; then
    echo "wget error with ${X}.d.maint (RC=${RC})."
    continue
  fi
  html2text -nobs -width 333 status.html | tr _ \  | tr \| \ | tr -s \  >status.txt
  #
  ## html2text -nobs -width 125 http://${X}.d.maint/status | \
  ##   tr _ \  | tr \| \  >status.txt
  #
  diff -b -U 0 status.txt.old status.txt | \
    grep -v "^---\|^+++\|^@@\|Temperature\|Progress" >status.dif
  test -s status.dif && echo "${X}.d.maint status change:" && cat status.dif
  grep "Front\|Temperature" status.txt | (while read a b c d e f g h i; \
    do
      if [ "${a} ${b} ${c}." = "Disk Stack Temperature." ]; then
        echo -n "${e} ${f} ${g} ${h}" >temperatures.txt 
        TEMP_D1=${e%%.*}
        if [ ${TEMP_D1} -gt 40 ]; then
          echo "${X}.d.maint TEMP_D1 is ${e} °C."
        fi
        TEMP_D2=${f%%.*}
        if [ ${TEMP_D2} -gt 40 ]; then
          echo "${X}.d.maint TEMP_D2 is ${f} °C."
        fi
        TEMP_D3=${g%%.*}
        if [ ${TEMP_D3} -gt 40 ]; then
          echo "${X}.d.maint TEMP_D3 is ${g} °C."
        fi
        TEMP_D4=${h%%.*}
        if [ ${TEMP_D4} -gt 40 ]; then
          echo "${X}.d.maint TEMP_D4 is ${h} °C."
        fi
      elif [ "${a} ${b}." = "Ambient Temperature." ]; then
        echo " ${d}" >>temperatures.txt 
        TEMP_AMB=${d%%.*}
        if [ ${TEMP_AMB} -gt 40 ]; then
          echo "${X}.d.maint TEMP_AMB is ${d} °C."
        fi
      elif [ "${a} ${b}." = "Front Fans." ]; then
        if [ ! "${c} ${d} ${e} ${f}." = "OK OK OK OK." ]; then
          echo "${X}.d.maint Front Fans bad: ${c} ${d} ${e} ${f}."
        fi
      else
        echo "unparsed line: ${a} ${b} ${c} ${d} ${e} ${f} ${g} ${h} ${i}"
      fi
    done
  )
done

for i in $V24_IDE_RAID
do
  /root/bin/ide-raid.$i.status
done
