
#!/bin/sh
# File	: get_vfiler.sh
# By	: MaartenDeBoer.nl, 081010
# Subject	: Get all Vfilers from all filers & place them in a .CSV-file
#(0.2): $LIST added
#(0.3): LIST in CSV
#(0.4)	: Added --mailto
#(0.5)	: Added vfiler DR
#(0.6)	: Add TO_LL

PGM="`basename $0|cut -d\. -f1`"
VERSION="0.6"
TMP="/tmp/$PGM.$$"
MAILTO="maarten.deboer@atos.net"
HOSTNAME="`hostname`"
MAIL=""
FILERS="$HOME/etc/filers"
CSV="fsod-filers-vfilers.csv"
LIST=""
LISTFILE="${HOME}/data/${CSV}"
SUBJECT=":${HOSTNAME}: FSOD filers-vfilers-list [${PGM} v${VERSION}]"
SSH="/usr/bin/ssh -n"
TOLL=""

USAGE()
{
  echo "Usage: ${PGM} <options> "
  echo "  Version: ${VERSION}"
  echo "  options    :"
  echo "    -h       : this help"
  echo "    -V       : Version"
  echo "    -l       : produce list as ${LISTFILE}"
  echo "    -x       : set -x"
  echo "    -m       : do send mail"
  echo "    --toll   : send to LiveLink (via mailbox-role)"
  echo "    --mail   : do send mail"
  echo "    --mailto : do send mail (${MAILTO}) "
  echo "    --help   : this help"
}

# Check options
while [ $# -gt 0 ]
  do
  case $1 in
    -l ) LIST=1 ;;
    -m | --mail) MAIL=1 ;;
    --mailto) MAIL=1; MAILTO=${2}; shift ;;
    --toll) TOLL=1; MAIL=1; MAILTO="maarten.deboer@atos.net" ;;
    -h | --help) USAGE; exit 1 ;;
    -V) echo "${PGM}: v${VERSION}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option $1 not known."; USAGE; exit 1 ;;
  esac
    shift
done

touch ${TMP}

echo "MAIL=${MAIL} MAILTO=${MAILTO} TOLL=${TOLL} SUBJECT=${SUBJECT}"

echo "# Filer ; # vFiler; # Status" > ${TMP}

for FILER in `cat ${FILERS}|grep -v \^#|sort`
do
  echo "${FILER}:"
  ${SSH} ${FILER} vfiler status|egrep 'running|DR'|grep -v vfiler|awk '{print $1,$2,$3}'|while read VFILER STATUS DR
  do
    echo "${FILER} ; ${VFILER} ; ${STATUS} ; ${DR} ; " | tee -a ${TMP}
  done
done

echo "# Produced by ${PGM} (v${VERSION}) at `date` at ${HOSTNAME}" >> ${TMP}

if [ $LIST ]; then
  cp ${TMP} ${LISTFILE}
fi

if [ ${TOLL} ]; then
  SUBJECT="${SUBJECT} {TO_LL:fsod_inventory}"
fi

if [ $MAIL ]; then
  echo "Sending the output to ${MAILTO} ..."
  cat ${TMP}|uuencode ${CSV}|mailx -s "${SUBJECT}" ${MAILTO}
fi

rm ${TMP}
exit 0

