
#!/bin/sh
# FIle	: netapp-dfm-mail-std-reports.sh
# By	: Maarten.deBoer@Atos.net, 2016-07-20
# Subject	: Script to mail some standaard DFM (5.x) reports
#
PGM="`basename $0|cut -d\. -f1`"
VER="0v1"
TMPDIR="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
HOSTNAME="`hostname|cut -d\. -f1`"
UUENC="uuencode"
DATE="`date +%Y-%m-%d`"
TARFILE="${PGM}_${VER}_${HOSTNAME}_${DATE}.tgz"

MAILTO="mdrglob@msssyscol01.bcklan.ao-srv.com maarten.deboer@atos.net"

DFM="`type dfm | cut -d\( -f2| cut -d\) -f1|awk '{print $3}'`"
if [ "${DFM}" = "" ];  then
  echo "DFM = empty. dfm is not in a path. Exiting ..."
  exit 2
fi  # DFM

if [ ! -d ${HOME}/log ]; then
  mkdir ${HOME}/log
fi
echo "`date` ${PGM} ${VER} started."|tee -a ${LOG}

# maken a temp-dir
mkdir ${TMPDIR}
# Get some  general information about the DFM
DFMVER="`${DFM} version`"
date > ${TMPDIR}/date.asc
hostname > ${TMPDIR}/hostname.asc
ifconfig -a > ${TMPDIR}/ifconfig-a.asc
df -h > ${TMPDIR}/df-h.asc
cat /etc/redhat-release > ${TMPDIR}/etc-redhat-release.asc
${DFM} version > ${TMPDIR}/dfm-version.asc
${DFM} service list > ${TMPDIR}/dfm-service-list.asc
${DFM} report list > ${TMPDIR}/dfm-report-list.asc

DFM3="`echo ${DFMVER}|grep 'dfm 3'`"
if [ "${DFM3}" != "" ]; then
# DFM 3.x
  echo "${DFMVER}"
  echo "Making reports. Can take some time ..."
  ${DFM} report view -F csv storage-systems-releases > ${TMPDIR}/storage-systems-releases.csv
fi  # DFM 3

DFM4="`echo ${DFMVER}|grep 'dfm 4'`"
if [ "${DFM4}" != "" ]; then
# DFM 4.x
  echo "${DFMVER}"
  echo "Making reports. Can take some time ..."
  ${DFM} report view -F csv storage-systems-releases > ${TMPDIR}/storage-systems-releases.csv
fi  # DFM 4

DFM5="`echo ${DFMVER}|grep 'dfm 5'`"
if [ "${DFM5}" != "" ]; then
# DFM 5.x
  echo "${DFMVER}"
  echo "Making reports. Can take some time ..."
  ${DFM} report view -F csv storage-systems-releases > ${TMPDIR}/storage-systems-releases.csv
  ${DFM} report view -F csv controllers-uptime > ${TMPDIR}/controllers-uptime.csv
  ${DFM} report view -F csv aggregates-capacity > ${TMPDIR}/aggregates-capacity.csv
  ${DFM} report view -F csv disks-report > ${TMPDIR}/disks-report.csv
fi  # DFM 5


# Collect all the information
cd ${TMPDIR}
tar czf /tmp/${TARFILE} *

# Check RHEL. Because mailx layout has changed
SUBJECT="@${HOSTNAME}: DFM reports [${PGM} ${VER}]"
RHREL="`/bin/rpm -qa|grep redhat-release|cut -d\- -f4| grep -i server`"
# Test if uuencode exists. Otherwise mail & exit
type ${UUENC} 1> /dev/null 2>&1
EC=$?
if [ ${EC} -eq 0 ]; then
  UUENC="`type uuencode | awk '{print $3}'`"
else
  UUENC="tee"
  echo "No uuencode @`hostname`"| mailx ${MAILTO}
  exit 3
fi

# Always uuencode is needed. Otherwise no automated extracting at target is possible
cat /tmp/${TARFILE}|${UUENC} ${TARFILE}|mailx -s "${SUBJECT}" ${MAILTO}
echo "  ${TARFILE} mailed (+uuencode) to ${MAILTO}"|tee -a ${LOG}

rm -rf ${TMPDIR} /tmp/${TARFILE}
echo "`date` ${PGM} ${VER} finished."|tee -a ${LOG}
exit 0

