
#!/bin/sh
# File	: chk_filer_storage
# By	: M. de Boer, 070227
# Mod(0.3),MdB	: ENV & VERSION, USAGE & MAIL added
# Mod(0.4),MdB	: Made for aggrs. Use of $HOME/etc/filers
# Mod(0.1),MdB	: Changed to chk_filer_storage
# Mod(0.2),MdB	: Show always (was -ne 1) spare disks
# Mod(0.3,090918),MdB  : At `sysconfig -r` awk & spare changed
#(0.4): Aggr > 80% & -m added; .sh added
# Subject	: Check volume>90 & Aggr>80% sizes

PGM="`basename $0|cut -d\. -f1`"
VERSION="0.4"
TMP="/tmp/$PGM.$$"
MAILTO="maarten.deboer@atosorigin.com"
MAILTO="maarten.deboer@atosorigin.com gmnl-msscentral@atosorigin.com richard.loos@atosorigin.com"
HOSTNAME="`hostname`"
MAIL=""
FILERS="$HOME/etc/filers_new"
MAILFILE="/tmp/$PGM.$$.mail"

USAGE()
{
  echo "Usage: $PGM [-V] [-x] [-h | --help] [-m | --mail] "
  echo "  Version: ${VERSION}"
  echo "  options:"
  echo "    -V : Version"
  echo "    -x : set -x"
  echo "    -h | --help     : this help"
  echo "    -m | --mail     : do send mail"
}

# Check options
while [ $# -gt 0 ]
  do
  case $1 in
    -m | --mail) MAIL=1 ;;
    -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

# Check is storage above 90% and punt into $TMP.
# If $TMP is filled, the use info from $TMP.2

for FILER in `cat $FILERS|sort|grep -v \#|awk -F\; '{print$1}'`
do
  echo "`grep $FILER $FILERS`:" |tee -a $TMP.2
  ssh $FILER df -g | grep -v snap | grep 9.% | tee -a $TMP  >> $TMP.2
  ssh $FILER df -gA | grep -v snap | grep [89].% | tee -a $TMP >> $TMP.2

# Get all type of spares with count
  ssh $FILER sysconfig -r > $TMP.r
  cat $TMP.r | grep spare|awk '{print $1, $9, $11}' | sort -u > $TMP.spares

  cat $TMP.spares | while read TYPE SPEED SIZE
  do
    SPARECNT="`grep $TYPE $TMP.r | grep $SPEED | grep -c ${SIZE}`"
    echo "$TYPE $SPEED $SIZE $NOT $ZERO=$SPARECNT" >> $TMP.2
  done
  cat $TMP.r | grep spare|grep -i zero|awk '{print $1, $9, $11,$12,$13}' | sort -u >> $TMP.2
  ZEROCNT="`cat $TMP.r | grep spare|grep -ci zero`"
  if [ "$ZEROCNT" != "0" ]; then
    echo " =$ZEROCNT" >> $TMP.2
  fi

  echo "" >> $TMP.2
done

if [ -s $TMP ]; then
  cat $TMP.2 >> $MAILFILE
fi

cat ${MAILFILE}

if [ ${MAIL} ]; then
  echo "Sending the output to ${MAILTO} ..."
  cat ${MAILFILE} | mailx -s ":${HOSTNAME}: Filer volumes usage>90% & Aggr>80% [${PGM} v${VERSION}]" ${MAILTO}
fi

rm ${TMP} ${TMP}.2 ${TMP}.r ${TMP}.spares
exit

