
#!/bin/sh
# File	: noc_network_ping_proxy.sh
# By	: Maarten.deBoer@Atos.net, 240320
# Subject	: Netapp Ontap Cli script to test (by ping) some IP-ranges (subnet).
#(0.2),240325	: Mod's
#(0.3),241111	: Added RCFILE,WAITSEC,PINGCNT + Mod's
PGM=`basename $0|cut -d\. -f1`
VER="0.3"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"
CSV="/tmp/${PGM}.csv"
MAILTO="maarten.deboer@atos.net"
RCFILE="${HOME}/etc/${PGM}.rc"
WAITSEC=2
PINGCNT=2

CLUSTER="nlnaf102"
VSERVER="nlnafsmss02"
LIF="mss02"
SUBNET="161.89.52"
START="1"
END="254"

if [ -f ${RCFILE} ]; then
  echo "  RCFILE(${RCFILE}) found. Using it."|tee -a ${LOG}
  . ${RCFILE}
fi  # RCFILE

CSV="/tmp/ping_${CLUSTER}-${VSERVER}-${LIF}.csv"

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
echo "  CSV=${CSV}"|tee -a ${TMP}.mail
echo "  CLUSTER=${CLUSTER}"|tee -a ${TMP}.mail
echo "  VSERVER=${VSERVER}"|tee -a ${TMP}.mail
echo "  LIF=${LIF}"|tee -a ${TMP}.mail
echo "  MAILTO=${MAILTO}"|tee -a ${TMP}.mail
echo "  SUBNET=${SUBNET}"|tee -a ${TMP}.mail
echo "  START=${START}"|tee -a ${TMP}.mail
echo "  END=${END}"|tee -a ${TMP}.mail
echo "  PINGCNT=${PINGCNT}"|tee -a ${TMP}.mail
echo "  WAITSEC=${WAITSEC}"|tee -a ${TMP}.mail
sleep 2

touch ${TMP} ${CSV}

IP_PART=${START}
while [ ${IP_PART} -le ${END} ]
do
  IP_DEST="${SUBNET}.${IP_PART}"
  IP_PART=`expr ${IP_PART} + 1`
  echo "  ping ${VSERVER}-${LIF}:${IP_DEST}"
  PING_ANSW=`${SSH} ${CLUSTER} "ping -vserver ${VSERVER} -lif ${LIF} -destination ${IP_DEST} -count ${PINGCNT} -wait-response ${WAITSEC}"|grep "${IP_DEST}"|cut -d" " -f1-3`
  EC=${?}
  echo "  IP_PART=${IP_PART} IP_DEST=${IP_DEST} = ${PING_ANSW}"|tee -a ${LOG}
  echo "${CLUSTER};${VSERVER};${LIF};${IP_DEST};${PING_ANSW};" >> ${TMP}

done  # IP_PART

if [ ${MAILTO} != "" ]; then
  echo "# CLUSTER ; VSERVER ; LIF ; IPADDRESS ; ANSWER ;" > ${CSV}  
  cat ${TMP} | sort -u >> ${CSV}
  cat ${TMP}.mail|mailx -a ${CSV} -s "NetApp (proxy) ping [${PGM} v${VER}]" ${MAILTO}
  echo "  Mailed (${CSV}) to ${MAILTO}"|tee -a ${LOG}
fi  # MAILTO

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

