
#!/bin/sh
# File	: cdot_bucket_report.sh
# By	: Maarten.deBoer@Atos.net, 260205
# Subject	: Script to report (S3 & NAS) buckets
#(0.2),260205	: Add DISCLAIMER, CUST_FILTER
PGM=`basename $0|cut -d\. -f1`
VER="0.2"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
SSH="/bin/ssh -n"
MAILTO=""
HOSTNAME=`hostname |cut -d\. -f1`
DATI="`date +%Y%m%d-%H%M`"
CSV="/tmp/${PGM}_${DATI}.csv"
PREFIX="nlnaf"
DISCLAIMER="${HOME}/etc/${PGM}.disclaimer"
CUST_FILTER="[*]?"

CLUSTERS="${HOME}/etc/clusters"

if [ "${1}" != "" ]; then
  MAILTO="${1}"
fi  # $1
if [ "${1}" != "" ]; then
  CUST_FILTER="${2}"
fi  # $1

echo "`date` ${PGM} v${VER} started."|tee -a ${LOG} ${TMP}.mail
echo "  CSV=${CSV}"
echo "  TMP=${TMP}"
echo "  CLUSTERS=${CLUSTERS}"
echo "  CUST_FILTER=${CUST_FILTER}"
echo "  DISCLAIMER(2)=${DISCLAIMER}"
echo "  PREFIX=${PREFIX}"
echo "  MAILTO(1)=${MAILTO}"
sleep 1

touch ${TMP}
echo "# CLUSTER;VSERVER;AGGR_LIST;VOLUME;V_SIZE;V_USED;TYPE;BUCKET;B_SIZE;B_USED;NAS_PATH;" > ${CSV}

echo "" >> ${TMP}.mail
echo "  CUST_FILTER=${CUST_FILTER}" >> ${TMP}.mail
echo "" >> ${TMP}.mail
if [ -f ${DISCLAIMER} ]; then
  cat ${DISCLAIMER} >> ${TMP}.mail
fi  # DISCLAIMER

cat ${CLUSTERS}|grep -v ^#|while read CLUSTER
do
#    echo "  CLUSTER=${CLUSTER}"
  ${SSH} ${CLUSTER} "set -units GB -showseparator \";\" ;vserver object-store-server bucket show -field volume,size,vserver,type,nas-path,logical-used"|grep ${PREFIX}|egrep "${CUST_FILTER}"|while read LINE
  do
    VSERVER=`echo ${LINE}|awk -F\; '{print $1}'`
    BUCKET=`echo ${LINE}|awk -F\; '{print $2}'`
    TYPE=`echo ${LINE}|awk -F\; '{print $3}'`
    VOLUME=`echo ${LINE}|awk -F\; '{print $4}'`
    B_SIZE=`echo ${LINE}|awk -F\; '{print $5}'`
    B_USED=`echo ${LINE}|awk -F\; '{print $6}'`
    NAS_PATH=`echo ${LINE}|awk -F\; '{print $7}'`
    echo "  CLUSTER=${CLUSTER} VSERVER=${VSERVER} VOLUME=${VOLUME} BUCKET=${BUCKET}"

    if [ "${VOLUME}" != "" ]; then
      ${SSH} ${CLUSTER} "set -units GB -showseparator \";\" ;volume show -vserver ${VSERVER} -volume ${VOLUME} -field vserver,volume,aggr-list,size,used"|grep ${VOLUME}|while read LINE2
      do
        echo "LINE2=${LINE2}"
        AGGR_LIST=`echo ${LINE2}|awk -F\; '{print $3}'`
        V_SIZE=`echo ${LINE2}|awk -F\; '{print $4}'`
        V_USED=`echo ${LINE2}|awk -F\; '{print $5}'`

        echo "${CLUSTER};${VSERVER};${AGGR_LIST};${VOLUME};${V_SIZE};${V_USED};${TYPE};${BUCKET};${B_SIZE};${B_USED};${NAS_PATH};"|tee -a ${CSV}
      done  # LINE2
    fi  # VOLUME
  done  # LINE
done  # CLUSTER

if [ "${MAILTO}" != "" ]; then
  SUBJECT="@${HOSTNAME}: Bucket report [${PGM} v${VER}]"
  if [ "${CUST_FILTER}" != "[*]?" ]; then
    SUBJECT="@${HOSTNAME}: Bucket report for ${CUST_FILTER} [${PGM} v${VER}]"
  fi  #
  cat ${TMP}.mail | mailx -a ${CSV} -s "${SUBJECT}" "${MAILTO}"
  EC=${?}
  echo "  Mailed(${EC}) to ${MAILTO}"|tee -a ${LOG}
fi  # MAIL

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

