
#!/bin/sh
# FIle	: 
# By	: Maarten.deBoer@Atos.net, 180912
# Subject	: Script to backup cDOT-config data via FTP
PGM=`basename $0|cut -d\. -f1`
VER="0.1"
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="nlnaf100"

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} ..."
# 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

