
#!/bin/sh
# File	: cdot_proc_sap-snap-overview.sh
# By	: Maarten.deBoer@Atos.net, 230215
# Subject	: Script to process SAP-snapvault(backup) overview
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"

ETCFILE="${HOME}/etc/${PGM}.asc"
CSVFILE="${HOME}/data/${PGM}.csv"
SMDATA="${HOME}/data/${PGM}-data.csv"
CLUSTERS="nlnaf100 nlnaf101"
MAILTO="maarten.deboer@atos.net"
#MAILTO="maarten.deboer@atos.net harold.kuijpers@atos.net partenie.vintila-cheiac@atos.net"

FORCE_DATACOL=""
FORCE_DATACOL=1

SFILTER="[?]*"
#SFILTER="cih"
#SFILTER="mdq"
#SFILTER="ctc"

if [ "${1}" != "" ]; then
  SFILTER="${1}"
fi

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
echo "  CLUSTERS=${CLUSTERS}"
echo "  CSVFILE=${CSVFILE}"
echo "  ETCFILE=${ETCFILE}"
echo "  FORCE_DATACOL=${FORCE_DATACOL}"
echo "  MAILTO=${MAILTO}"
echo "  SFILTER=${SFILTER}"
echo "  SMDATA=${SMDATA}"
sleep 1

if [ -f ${ETCFILE} ]; then
  cp /dev/null ${CSVFILE}
  if [ ${FORCE_DATACOL} ]; then
    rm ${SMDATA}
  fi
  if [ ! -f ${SMDATA} ]; then
    echo "  Gathering SnapMirror data ..."|tee -a ${LOG}
    for CLUSTER in ${CLUSTERS}
    do
      echo "    ${CLUSTER} ..."
      ${SSH} ${CLUSTER} "set -units GB -showseparator \";\" ;snapmirror show -field source-path,destination-path,type,last-transfer-end-timestamp,last-transfer-duration,last-transfer-size,last-transfer-type,state,status,policy,policy-type,vserver" >> ${SMDATA}
    done  # for
  fi  # ! -f ${SMDATA}

  cat ${ETCFILE} |grep -v "#"|while read LINE
  do
#    echo "  ${LINE}" 
    SVMS_VOLS=`echo "${LINE}"|grep -i ":${SFILTER}"|grep "SNAPVAULT_VOLUMES="|cut -d\= -f2`
    if [ "${SVMS_VOLS}" != "" ]; then
      SID=`echo "${LINE}"|grep "SNAPVAULT_VOLUMES="|cut -d\: -f1|cut -d\. -f1`
      SVM=`echo ${SVMS_VOLS}|cut -d\: -f1`
      VOLS=`echo ${SVMS_VOLS}|cut -d\: -f2|sed 's/,/ /g'`

      echo "SID=${SID} SVM=${SVM} VOLS=${VOLS}"
      for VOL in ${VOLS}
      do
        echo "    VOL=${VOL}"
        VOL_SMDATA=`grep ${VOL} ${SMDATA}`
        if [ "${VOL_SMDATA}" != "" ]; then
          MIRROR_VAULT=`echo "${VOL_SMDATA}"| grep "mirror-vault"|grep "MirrorAndVault"`
          if [ "${MIRROR_VAULT}" = "" ]; then
            echo "${SID};${VOL_SMDATA}"|tee -a ${CSVFILE}
          else
#            echo "( ${SID};${VOL_SMDATA}"|cut -d\; -f1-7 |tee -a ${CSVFILE}
            echo "( ${SID};${VOL_SMDATA}"|tee -a ${CSVFILE}
          fi  # ${MIRROR_VAULT}" != ""

        else
          echo "  ${SID};${VOL} NOT in SnapMirror XDP (SnapVault)"| tee -a ${CSVFILE}
        fi  # ${VOL_SMDATA}" != ""
      
      done  # VOL
      
    fi  # SVMS_VOLS}" != ""


  done  # LINE
else
  echo "  ETCFILE (${ETCFILE}) NOT found. Exiting ..."|tee -a ${LOG}
  exit 3
fi


# Gather from SMDATA
cat ${SMDATA}|grep ":${SFILTER}"|grep XDP|grep -v "mirror-vault"|grep -v "MirrorAndVault"| tee -a ${TMP}.csv


if [ "${MAILTO}" != "" ]; then
  echo "`date`" | mailx -a ${CSVFILE} -s "Proc1 for ${SFILTER} [${PGM} v${VER}]" "${MAILTO}"
  echo "`date`" | mailx -a ${TMP}.csv -s "Proc2 for ${SFILTER} [${PGM} v${VER}]" "${MAILTO}"
  echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
fi 

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

