
#!/bin/sh
# File	: get_vfiler_storage.sh
# By	: M. de Boer, 110621
# Subject	: Get storage per (customer) vfiler 

PGM="`basename $0|cut -d\. -f1`"
VERSION="0.1"
TMP="/tmp/$PGM.$$"
MAILTO="maarten.deboer@atosorigin.com"
HOSTNAME="`hostname`"
MAIL=""
FILERS="$HOME/etc/filers"
MAILFILE="/tmp/$PGM.$$.mail"
SSH="/usr/bin/ssh -n"
DATE="`date +%Y-%m-%d`" 
CSV="FSOD_vfiler_storage_${DATE}.csv"
FILTER="[0123456789]"
SSH="/usr/bin/ssh -n" 


USAGE()
{
  echo "Usage: $PGM [-h] [-V] [-x] [--help] [--mail] "
  echo "  Version: ${VERSION}"
  echo "  options:"
  echo "    -f : filter filername (${FILTER})"
  echo "    -h : this help"
  echo "    -V : Version"
  echo "    -x : set -x"
  echo "    --help   : this help"
  echo "    --mail   : do send mail"
  echo "    --mailto : change MAILTO address & do send mail (${MAILTO})"
}

# Check options
while [ $# -gt 0 ]
  do
  case $1 in
    --mail) MAIL=1 ;;
    --mailto) MAILTO=$2; MAIL=1; shift ;;
    -h | --help) USAGE; exit 1 ;;
    -f) FILTER=$2; shift ;;
    -V) echo "${PGM}: v${VERSION}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option $1 not known."; USAGE; exit 1 ;;
  esac
    shift
done
 
echo "# From ${PGM}" >  ${TMP}
echo "# At `date`">> ${TMP}
echo "# Filername;vFilername;Volname;Total(GB);Used(GB);Avail(GB);Perc(%); " >> ${TMP}

for FILER in `cat ${FILERS}|grep -v \#|awk -F\; '{print$1}'|grep ${FILTER}`
do
  echo "${FILER};"
  for VFILER in `${SSH} ${FILER} vfiler status|grep running|awk '{print $1}'`
  do
    echo "${FILER} ; ${VFILER} ;" | tee -a  ${TMP}
    ${SSH} ${FILER} vfiler run ${VFILER} df -g |grep -v Filesystem|grep -v '====='|grep -v snapshot|sort|awk '{print "; ; "$1";"$2";"$3";"$4";"$5";"}'|sed -e 's/GB//g'|sed -e 's/\%//g' >> ${TMP}

  done

done

if [ $MAIL ]; then
  echo "Sending the output to ${MAILTO} ..."
  cat ${TMP} | uuencode ${CSV}| mailx -s ":${HOSTNAME}: FSOD-filers Aggr [${PGM} v${VERSION}]" ${MAILTO}
fi

rm $TMP

