
#!/bin/sh
# subject	: Script to check/test FireWall config's. By using nmap
#(0.2),200102	: Added; FILTER, Upd; SSH & Chk p41004 from RAU to OCI-srv
#(0.3),200102	: Add; WEB
PGM=`basename $0|cut -d\. -f1`
VER="0.3"
TMP="/tmp/${TMP}.$$"
LOG="${HOME}/log/${PGM}.log"
RAUCSV="${HOME}/data/${PGM}.csv"
RAUCSV="${HOME}/data/oci_rau-s.csv"
MAILTO="maarten.deboer@atos.net maarten@agrarix.it"
#MAILTO=""
OCISRV="161.89.56.24"
FILTER="oci"
OUTCSV="${HOME}/data/oci_rau-status.csv"

if [ ! -f ${RAUCSV} ]; then
  echo "  NO RAUCSV (${RAUCSV}) found. Exiting ..."
  exit 3
fi
touch ${TMP}
echo "`date` ${PGM} v${VER} at `hostname` started."|tee -a ${LOG} ${TMP}

cp /dev/null ${OUTCSV}
cat ${RAUCSV}|grep -v ^#|grep ${FILTER}| while read LINE
do
  IPADDR=`echo ${LINE}|awk -F\; '{print $1}'`
  HOSTNAME=`echo ${LINE}|awk -F\; '{print $2}'`
  ENV=`echo ${LINE}|awk -F\; '{print $3}'`
  echo "  + ${ENV}"|tee -a ${TMP} ${LOG}
  echo -n "    - To ${HOSTNAME}(${IPADDR}): "|tee -a ${TMP} ${LOG}
  ping -c 2 -W 3 ${IPADDR} 1> /dev/null 2>&1
  EC=${?}
  if [ ${EC} -eq 0 ]; then
# ping OK. Check SSH
    PINGSTATUS="ping = OK"
#    ANSW=`nmap -Pn --host-timeout 10s -p 22 ${IPADDR}| grep 22`
#    if [ "${ANSW}" != "" ]; then
#      echo " ${ANSW}"|tee -a ${TMP} ${LOG}
#    else
#      echo " NO ssh"|tee -a ${TMP} ${LOG}
#    fi  # ANSW
  else
    PINGSTATUS="ping NOTok"
  fi  # ping
  echo -n "${PINGSTATUS}, " |tee -a ${TMP} ${LOG}

  NMAPTO=`nmap -Pn --host-timeout 10s -p 22 ${IPADDR}| grep ssh`
  echo " ${NMAPTO}"|tee -a ${TMP} ${LOG}
# Check for open SSH 
  NMAPBACK="??"
  OCISTATUS="NO rau active"
  ANSW=`nmap -Pn --host-timeout 10s -p 22 ${IPADDR}| grep ssh|grep open`
  if [ "${ANSW}" != "" ]; then
# Open SSH; Check if p41004 (back to OCI-srv is open)
    NMAPBACK=`ssh -n ${IPADDR} "nmap -Pn --host-timeout 10s -p 41004 ${OCISRV}"|grep tcp`
    echo -n "    - Back from RAU-${HOSTNAME} (${IPADDR}) to OCI-srv(${OCISRV}):"|tee -a ${TMP} ${LOG}
    echo "${NMAPBACK}"|tee -a ${TMP} ${LOG}

# Check OCI_RAU-status
# When empty NO OIC is active
    ANSW=`ssh -n ${IPADDR} "ps -ef"|grep ocisys`
    if [ "${ANSW}" != "" ]; then
      OCISTATUS="RAU active"
    fi  # OCIANSW
    
  fi  # ANSW
  echo "    - ${OCISTATUS}"|tee -a ${TMP} ${LOG}

# Update OUTCSV-file for WEB-status
  echo "${ENV};${HOSTNAME};${IPADDR};${PINGSTATUS};${NMAPTO};${NMAPBACK};${OCISRV};${OCISTATUS};" >> ${OUTCSV}

done  # cat

if [ "${MAILTO}" != "" ] && [ -s ${TMP} ]; then
  cat ${TMP}|mailx -s "Check NL-OCI-RAU connections [${PGM} v${VER}]" ${MAILTO}
  echo "  Mailed to ${MAILTO}."|tee -a ${LOG}
fi

if [ -f ${HOME}/bin/upd_oci-status.sh ]; then
  echo "  Upd Web-page ..."|tee -a ${LOG}
  ${HOME}/bin/upd_oci-status.sh
fi  # -f

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

