
#!/bin/sh
# File	: cdot_del_snaps.sh
# By	: Maarten.deBoer@Atos.net, 230802
# Subject	: Script to remove (delete) (old) snaps
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"

SVM=""
CLUSTER=""
VOLUMES=""
SNAPS=""
DO_DELETE=""

USAGE()
{
  echo "Usage: ${PGM} <options>"
  echo "  Version: ${VERSION}"
  echo "  options           :"
  echo "    -c              : Cluster name (${CLUSTER})"
  echo "    --do_delete     : Do Delete the snaps"
  echo "    --svm           : Svm name/filter (${SVM})"
  echo "    --snaps         : Snaps name/filter (${SNAPS})"
  echo "    --volumes       : Volumes name/filter (${VOLUMES})"
  echo "    -V              : Version"
  echo "    -x              : set -x"
}
# Check options
while [ ${#} -gt 0 ]
  do
  case ${1} in
    -c) CLUSTER=${2}; shift ;;
    --svm) SVM=${2}; shift ;;
    --snaps) SNAPS=${2}; shift ;;
    --volumes) VOLUMES=${2}; shift ;;
    --do_delete) DO_DELETE=1 ;;
    -V) echo "${PGM}: v${VERSION}"; 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}

if [ "${CLUSTER}" != "" ] && [ "${SVM}" != "" ] && [ "${VOLUMES}" != "" ] && [ "${SNAPS}" != "" ] ; then
  echo "  Listing snaps (${CLUSTER}:${SVM}:${VOLUMES}:${SNAPS}):" |tee -a ${LOG}

  ${SSH} ${CLUSTER} "set -showseparator \";\" ; snap show -vserver ${SVM} -volume ${VOLUMES} -snapshot ${SNAPS} -field vserver,volume,snaps"|grep -v vol0root|grep "${SVM}"|while read LINE
  do
    echo "  ${LINE} "
    VOLUME=`echo ${LINE}|awk -F\; '{print $2}'`
    SNAPSHOT=`echo ${LINE}|awk -F\; '{print $3}'`

    if [ ${DO_DELETE} ]; then
      ${SSH} ${CLUSTER} "snap delete -vserver ${SVM} -volume ${VOLUME} -snapshot ${SNAPSHOT}"
      EC=0
      echo "    Deleted SNAP ${CLUSTER}:${SVM}:${VOLUME}:${SNAPSHOT} (${EC})"|tee -a ${LOG}
    fi


  done  # snap show
else
  echo "  NOT all CLUSTER, SVM, VOLUMES, SNAPS are defined. Exiting ..."|tee -a ${LOG}
fi  # CLUSTER & SVM


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

