
#!/bin/sh
# File	: get_inventory_FilerNICs.sh
# By	: Maarten.deBoer@atos.net, 120420, 130924
# Subject	: Scripts to collect FilerNICs info (for FSOD Inventory)
#(0.2)	: Mod: ;->, Other header
PGM="`basename $0|cut -d\. -f1`"
VER="0.2"
TMP="/tmp/${PGM}.$$"
CSV="/tmp/${PGM}.csv"
MAILTO="maarten.deboer@atos.net"
SSH="/usr/bin/ssh -n"
FILERS=${HOME}/etc/filers
HOSTNAME="`hostname|cut -d\. -f1`"
LOG=${HOME}/log/${PGM}.log

LANDSCAPE="FSOD-Atos"
FILER="Filer"
IFNAME="Interface Name"
TRUNKED="Trunked"
PARTNER="Partner"
NWBBL="Network Bubble"
VLAN="VLAN Nr"
SWITCH="Switch"
PORT="Port"
CABLE="Cable"
REMARKS="Remarks"

CSV="/tmp/${LANDSCAPE}_${PGM}.csv"

# Filer;IFName;Trunked;Partner;NetworkBubble;VLAN;Switch;Port;Cable;Remarks
echo "${FILER},${IFNAME},${TRUNKED},${PARTNER},${NWBBL},${VLAN},${SWITCH},${PORT},${CABLE},${REMARKS}"|tee -a ${TMP}
for FILER in `cat ${FILERS}|grep -v \#`
do
  ${SSH} ${FILER} ifconfig -a|grep flags|awk '{print $1}'|cut -d\: -f1|while read IFNAME
  do
    echo "${FILER}=${IFNAME} ..."
    ${SSH} ${FILER} ifconfig ${IFNAME} > ${TMP}.2
    TRUNKED="`grep trunked ${TMP}.2|cut -d' ' -f2`"
    PARTNER="`grep partner ${TMP}.2|cut -d' ' -f2`"

    ANSW="`echo ${IFNAME}|egrep '^e|^c|^lo'`"
# If NOT (e-)interface; Get NetworkBubble & VLAN. At (e-)interface this is not available.
    if [ "${ANSW}" = "" ]; then
      NWBBL="`echo "${IFNAME}"|cut -d\- -f2`"
      VLAN="`echo "${IFNAME}"|cut -d\- -f3`"
      SWITCH=""
      PORT=""
      CABLE=""
    else
      NWBBL=""
      VLAN=""
      SWITCH="?"
      PORT="?"
      CABLE="?"
    fi

    MACADDR="`grep ether ${TMP}.2|cut -d' ' -f2`"
    STATUS="`grep ether ${TMP}.2|grep -v interface|cut -d\( -f2|cut -d\) -f1`"
    TRUNKED="`grep trunked ${TMP}.2|cut -d' ' -f2`"
    PARTNER="`grep partner ${TMP}.2|cut -d' ' -f2`"
    REMARKS="${STATUS}"

# Getting GW in 2 stages from /etc/rc
#    VFILER="`${SSH} ${FILER} rdfile /etc/rc|grep -v ^#|grep ${IFNAME}|grep ifconfig|grep -v hostname`"
#    if [ "${VFILER}" != "" ]; then
#      GW="`${SSH} ${FILER} rdfile /etc/rc|grep ${VFILER}`"
#    else
#      GW=" - "
#    fi

    echo "${LANDSCAPE}|${FILER},${IFNAME},${TRUNKED},${PARTNER},${NWBBL},${VLAN},${SWITCH},${PORT},${CABLE},${REMARKS}"|tee -a ${TMP}
    rm ${TMP}.2
  done  # ifconfig

done  # for FILER

echo "#"|tee -a ${TMP}
echo "# Ran at ${HOSTNAME}, by ${PGM} v${VER}, at `date`"|tee -a ${TMP}

cp ${TMP} ${CSV}
date|mailx -a ${CSV} -s "@${HOSTNAME}: [${PGM} v${VER}]" ${MAILTO}
echo "`date` Mailed to ${MAILTO}"|tee -a ${LOG}
rm ${TMP} ${CSV}
exit 0

