You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
Bash
38 lines
1.2 KiB
Bash
#!/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}"
|
|
|