#!/bin/bash set -euo pipefail # Config SSH_CONFIG="$HOME/.ssh/config" SSH_IDENTITY="$HOME/.ssh/cmc" #Path to your SSH identity file REMOTE_USER="cmc" REMOTE_HOST="sales.cmctechnologies.com.au" REMOTE_PATH="~/backups/" LOCAL_BACKUP_DIR="backups" DB_HOST="127.0.0.1" DB_USER="cmc" DB_NAME="cmc" # Ensure backups dir exists if [ ! -d "$LOCAL_BACKUP_DIR" ]; then echo "Creating $LOCAL_BACKUP_DIR directory..." mkdir -p "$LOCAL_BACKUP_DIR" fi # Step 1: Rsync backups (flatten output) echo "Starting rsync..." rsync -avz --progress -e "ssh -F $SSH_CONFIG -i $SSH_IDENTITY" --no-relative --include='backup_*.sql.gz' --exclude='*' "$REMOTE_USER@$REMOTE_HOST:$REMOTE_PATH" "$LOCAL_BACKUP_DIR/" || { echo "Rsync failed"; exit 1; } echo "Rsync complete." # Step 2: Find latest backup LATEST_BACKUP=$(ls -t $LOCAL_BACKUP_DIR/backup_*.sql.gz | head -n1) if [[ -z "$LATEST_BACKUP" ]]; then echo "No backup file found!" exit 1 fi echo "Latest backup: $LATEST_BACKUP" # Step 3: Import to MariaDB read -s -p "Enter DB password for $DB_USER: " DB_PASS echo echo "Importing backup to MariaDB..." gunzip -c "$LATEST_BACKUP" | mariadb -h "$DB_HOST" -u "$DB_USER" -p"$DB_PASS" "$DB_NAME" || { echo "Database import failed"; exit 1; } echo "Database import complete."