#!/bin/bash # # # REMOTE_SYSTEM_USER=backupuser DATABASE_SERVER_IP=$1 STAGE=$2 DATABASE_ENGINE=$3 # currently it defaults to todays date DATE=$(date +%F) LOCAL_BACKUP_DIR="${HOME}/backups/${STAGE}/${DATABASE_ENGINE}" BACKUP_FILE_FOR_TRANSFER=$(find "${LOCAL_BACKUP_DIR}/${DATE}/" -name *.gz.gpg | tail -n 1) REMOTE_BACKUP_DIR="/home/${REMOTE_SYSTEM_USER}/backups/${STAGE}/${DATABASE_ENGINE}" DEST_DIR="${REMOTE_BACKUP_DIR}/${DATE}/" if [ ! -f $BACKUP_FILE_FOR_TRANSFER ]; then echo "BACKUP_FILE_FOR_TRANSFER not found. EXIT" && exit 1 fi # avoid "REMOTE HOST IDENTIFICATION HAS CHANGED" - errors due to dynamic created server on restore process ssh-keygen -f "/home/backuphamster/.ssh/known_hosts" -R ${DATABASE_SERVER_IP} SSH_OPTIONS='-o StrictHostKeyChecking=no' # needed due to unknown rsync option --mkpath in rsync version 3.1.3 ssh ${SSH_OPTIONS} ${REMOTE_SYSTEM_USER}@${DATABASE_SERVER_IP} "mkdir -p ${DEST_DIR}" rsync -v -e "ssh ${SSH_OPTIONS}" $BACKUP_FILE_FOR_TRANSFER ${REMOTE_SYSTEM_USER}@${DATABASE_SERVER_IP}:${DEST_DIR} BKP_FILE_TRANSFERRED=$(echo $BACKUP_FILE_FOR_TRANSFER | awk -F / '{ print $NF}') ssh ${SSH_OPTIONS} ${REMOTE_SYSTEM_USER}@${DATABASE_SERVER_IP} "test -f ${DEST_DIR}${BKP_FILE_TRANSFERRED}"