
#!/bin/sh
# FIle	: 
# By	: Maarten.deBoer@Atos.net, 180912
# Subject	: Script to backup cDOT-config data via FTP
#(0.2)	: Checks (local) for DEST_DIR/NODE dir
PGM=`basename $0|cut -d\. -f1`
VER="0.2"
TMP="/tmp/${PGM}.$$"
LOG="${HOME}/log/${PGM}.log"
SSH="/usr/bin/ssh -n"

FTP_HOST="10.192.109.45"
DEST_DIR="cdot-backup/"
USERNAME_PWD="aodfm01a:Fs0dAaaa"

CLUSTERS="${HOME}/etc/clusters"
FILTER="[?]*"
#FILTER="nlnaf106"

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

if [ ! -f ${CLUSTERS} ]; then
  echo "  No CLUSTERS (${CLUSTERS}) found. Exiting ..."
  exit 2
fi

touch ${TMP}
for CLUSTER in `cat ${CLUSTERS}|grep ${FILTER}|grep -v \^#|awk -F\; '{print $1}'|sort`
do
  echo "${CLUSTER} ..."
  ${SSH} ${CLUSTER} "vserver show -type node"|grep ${CLUSTER}|awk '{print $1}'|while read NODE REST
  do
#    echo "${NODE} ..."
# If ${DEST_DIR} exists, then check if NODE-dir exists. Otherwise create
    if [ -d ${HOME}/${DEST_DIR} ]; then
#      echo "  ${HOME}/${DEST_DIR} exists"
      if [ ! -d ${HOME}/${DEST_DIR}/${NODE} ]; then
        echo "  ${HOME}/${DEST_DIR}/${NODE} does NOT exist. Creating it"|tee -a ${LOG}
        mkdir -p ${HOME}/${DEST_DIR}/${NODE}
      fi
    fi

# Get the last backup made of the node
    LATESTTIME=`${SSH} ${CLUSTER} "set -priv advanced;system configuration backup show -node ${NODE} -field time" | awk '{print $3,$4}'|sort -n|tail -1`
# Select the filename of the last backup made
    LATESTFILE=`${SSH} ${CLUSTER} "set -priv advanced;system configuration backup show -node ${NODE} -time ${LATESTTIME}" | awk '{print $2}'|sort -n|tail -1`

    echo "`date` FTP from ${CLUSTER}/${NODE} ${LATESTTIME} ${LATESTFILE}"|tee -a ${LOG}
# FTP backup to FTP-host. And capture the output in TMP
    ${SSH} ${CLUSTER} "set -priv advanced;system configuration backup upload -node ${NODE} -backup ${LATESTFILE} -destination ftp://${USERNAME_PWD}@${FTP_HOST}/${DEST_DIR}/${NODE}/" 1> ${TMP} 2>&1
    EC="${?}"
# If an error occured, put this (TMP) in LOG-file
    if [ ${EC} -gt 0 ]; then
      echo "  ERROR (${EC})"|tee -a ${LOG}
      cat ${TMP}|tee -a ${LOG}

    fi  # EC
  done  # NODEs
done  # CLUSTERs

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

