
#!/bin/sh
# File	: cdot_rpt_volumes.sh
# By	: Maarten.deBoer@Atos.net, 200930
# Subject	: Script to report (cDOT) volumes into CSV-file
#(0.2),200930	: Added CFILTER
#(0.3),201001	: Added at -field Aggregate, node
#(0.4),201124	: Added USAGE
PGM=`basename $0|cut -d\. -f1`
VER="0.4"
SSH="/usr/bin/ssh -n"
LOG="${HOME}/log/${PGM}.log"
MAILTO="maarten.deboer@atos.net"

DATI=`date +%Y-%m-%d-%H-%M-%S`

CLUSTERS="${HOME}/etc/clusters"
#CFILTER="nlnaf100"
CFILTER="nlnaf"
SFILTER="[?]*"
VFILTER="[?]*"
MAIL=""

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

USAGE()
{
  echo "Usage: $PGM [options] "
  echo "  Version: ${VER}"
  echo "  options:"
  echo "    -c | --cluster  : Cluster filter (${CFILTER})"
  echo "    -s | --svm      : SVM filter (${SFILTER})"
  echo "    -v | --vol      : Volume filter (${VFILTER})"
  echo "    -m | --mail     : Mail report"
  echo "    --mailto        : change mailto (${MAILTO})"
  echo "    -h              : this help"
  echo "    -V              : Version"
  echo "    -x              : set -x"
}
# Check options
while [ $# -gt 0 ]
  do
  case ${1} in
    -c | --cluster) CFILTER=${2}; shift ;;
    -s | --svm) SFILTER=${2}; shift ;;
    -v | --vol) VFILTER=${2}; shift ;;
    -m | --mail) MAIL=1 ;;
    --mailto) MAILTO=${2}; shift; MAIL=1 ;;
    -h | --help) USAGE; exit 1 ;;
    -V) echo "${PGM}: v${VER}"; exit 3 ;;
    -x)  set -x ;;
    *)  echo "Option ${1} not known."; USAGE; exit 1 ;;
  esac
    shift
done


echo "`date` ${PGM} v${VER} started."|tee -a ${LOG}
echo "  CLUSTERS=${CLUSTERS}"
echo "  CSV=${CSV}"
echo "  CFILTER=${CFILTER}"
echo "  SFILTER=${SFILTER}"
echo "  VFILTER=${VFILTER}"
echo "  MAIL=${MAIL}"
echo "  MAILTO=${MAILTO}"
sleep 1

echo "# vserver;volume;aggregate;available;total;used;percent-used;max-autosize;min-autosize;autosize-grow-threshold-percent;autosize-shrink-threshold-percent;autosize-mode;space-guarantee;node;sis-space-saved;dedupe-space-saved;compression-space-saved;logical-used;logical-used-percent;logical-available;is-space-reporting-logical;is-space-enforcement-logical;" > ${CSV}

cat ${CLUSTERS}|grep -v ^#|grep "${CFILTER}"|while read CLUSTER REST
do
  echo "${CLUSTER} ..."
  ${SSH} ${CLUSTER} "set -units MB -showseparator \";\" ; volume show -volume * -field vserver,aggregate,node,volume,total,logical-used,is-space-reporting-logical,logical-available,is-space-enforce,percent-used,logical-used-percent,min,max,autosize-grow-threshold-percent,autosize-shrink-threshold-percent,autosize-mode,used,avail,sis-space-saved,dedupe-space-saved,compression-space-saved,space-guarantee,compression-space-saved" |grep -v 'Vserver Name'|sed 's/MB//g'|grep ${SFILTER}|grep ${VFILTER} >> ${CSV}

done  # cat ${CLUSTERS}

echo " Figures are in MB" >> ${CSV}
echo "" >> ${CSV}
echo "`date` ${PGM} v${VER} @${HOSTNAME}" >> ${CSV}

if [ ${MAIL} ]; then
  echo "`date` ${PGM} v${VER} @${HOSTNAME}"| mailx -a ${CSV} -s "${PGM} v${VER}" "${MAILTO}"
  echo "  Mailed to ${MAILTO}"|tee -a ${LOG}
fi  # MAIL

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

