diff --git a/roles/backup/files/pull_remote_backups.sh b/roles/backup/files/pull_remote_backups.sh index a035741..24edf1f 100644 --- a/roles/backup/files/pull_remote_backups.sh +++ b/roles/backup/files/pull_remote_backups.sh @@ -3,16 +3,20 @@ # # +# Define some variables REMOTE_SYSTEM_USER=backupuser DATABASE_SERVER_IP=$1 STAGE=$2 DATABASE_ENGINE=$3 -DEST_DIR=${HOME}/backups/${STAGE}/${DATABASE_ENGINE}/ +DEST_DIR=${HOME}/backups/${STAGE}/${DATABASE_ENGINE} -# remove files oder than XX in backup-DIR -find ${DEST_DIR} -type f -mtime +2 -delete - -mkdir -p ${DEST_DIR} -rsync -av --remove-source-files -e "ssh -o StrictHostKeyChecking=no" ${REMOTE_SYSTEM_USER}@${DATABASE_SERVER_IP}:/backups/${DATABASE_ENGINE}/* ${DEST_DIR}/ +# Exit on ${DEST_DIR} not found +[ ! -d "$DEST_DIR" ] && exit 1 +# Remove files oder than 48h in ${DEST_DIR} +find $DEST_DIR -type d -mtime +1 -print0 | xargs -I OLD_DIR -0 rm -rf "OLD_DIR" +[ "$?" != "0" ] && exit 1 +# Create backup directory ${DEST_DIR} if not exist and rsync from ${DATABASE_SERVER_IP} to ${DEST_DIR}/ +mkdir -p ${DEST_DIR} +rsync -av --remove-source-files -e "ssh -o StrictHostKeyChecking=no" ${REMOTE_SYSTEM_USER}@${DATABASE_SERVER_IP}:/backups/${DATABASE_ENGINE}/ ${DEST_DIR}/