
#!/bin/bash
# File	: proc_asup-files_for_disk-failure.sh
# By	: Maarten.deBoer@atos.net, 151130
# Subject	: Script to process ASUP-files for disk failures
#(0.2)	: CSV added
#(0.3)	: $LOG added
#(0.4)	: Mod. SUPPORTMAILTO
#(0.5)	: Mod ASUPDATADIR
#set -x
PGM="`basename $0|cut -d\. -f1`" 
VERS="0.5"
TMP="/tmp/${PGM}.$$"
ASC="/tmp/${PGM}.asc"

BASEDIR="`pwd | sed 's/scripts//'|sed 's/bin//'`"
LOG="${BASEDIR}/log/${PGM}.log"
CSV="${BASEDIR}/data/afsp-disks-failures.csv"
DATADIR="${BASEDIR}/data"
COUNTRY="`echo ${BASEDIR}| cut -d\/ -f6`"
#SUPPORTMAILTO="${BASEDIR}/etc/supportmailto"
SUPPORTMAILTO="${BASEDIR}/etc/${PGM}.mailto"

ASUPDATADIR="/appl/asup/data"

MAILTO="maarten.deboer@atos.net"
AFSPSUP="maarten.deboer@atos.net"

echo "`date` ${PGM} v${VERS} Started."|tee -a ${LOG}
touch ${TMP}

# Read Functions file
source ./afsp-db_functions.sh
DB_FUNC_VER

echo ${BASEDIR}

  echo "${COUNTRY} ..."
  echo "Failed disks for ${COUNTRY}: " > ${ASC}
  cp /dev/null  ${TMP}
  cp /dev/null  ${CSV}
  # If database, then cd to database
  if [ -d /appl/mdr/mdrglob/afsp/${COUNTRY}/data/database ]; then
    cd /appl/mdr/mdrglob/afsp/${COUNTRY}/data/database
	ls -1 | while read DBFILE
	do
#	  echo "${DBFILE} ..."
	  DB_READ ${DBFILE}

	  if [ "${DB_CONTROLER_NAME}" != "" ] && [ "${DB_SERIAL_NUMBER}" != "" ]; then
	    if [ -f ${ASUPDATADIR}/${DB_CONTROLER_NAME}_${DB_SERIAL_NUMBER}/SYSCONFIG-R.txt ]; then
		  echo "${DB_CONTROLER_NAME}_${DB_SERIAL_NUMBER} ... " 
		  # Selecting whole line with NETAPP in to be precessed later
          cat ${ASUPDATADIR}/${DB_CONTROLER_NAME}_${DB_SERIAL_NUMBER}/SYSCONFIG-R.txt|grep failed >> ${TMP}.1
		fi  # -f

	  fi  # NAME && SER.NR

	  if [ -s ${TMP}.1 ]; then
		echo "${DB_CONTROLER_NAME} (${DB_SERIAL_NUMBER}) :"|tee -a ${LOG} ${TMP}
		echo -n "${DB_CONTROLER_NAME};${DB_SERIAL_NUMBER};" >> ${CSV}
	    cat ${TMP}.1 |tee -a ${LOG} ${TMP}
		echo "`cat ${TMP}.1` ;" >> ${CSV}
		echo "" >> ${TMP}
		cp /dev/null ${TMP}.1
	  fi
	done  # DBFILE
  fi  # database

# Check if failed disks. Then mail
# Check if MAILTOFILE is available. Otherwise send to MAILTO
  CNT="`cat ${TMP}|grep failed|wc -l`"
  echo "  ${CNT} failed disks ..."|tee -a ${LOG}
  if [ ${CNT} -gt 0 ]; then
    cp ${TMP} ${ASC}
    if [ -f ${SUPPORTMAILTO} ]; then
	  MAILTO="`cat ${SUPPORTMAILTO}`"
      echo "${CNT} failed disks for ${COUNTRY}. See attached file. Questions? mailto:${AFSPSUP} "| mailx -a ${ASC} -s "ASUP: disk failures ${COUNTRY} [${PGM} v${VERS}]" ${MAILTO}
      echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
	else
      echo "(NO SUPPORTMAILTO) ${CNT} failed disks for ${COUNTRY}:"| mailx -a ${ASC} -s "ASUP: disk failures ${COUNTRY} [${PGM} v${VERS}]" ${MAILTO}
      echo "  (NO supportmailto) Mailed to ${MAILTO}"|tee -a ${LOG}
	fi   # MAILTOFILE
  fi  # CNT

rm ${ASC} ${TMP} ${TMP}.1
echo "`date` ${PGM} Finished."|tee -a ${LOG}
exit 0

