cmc-sales/scripts/archive/refresh_data.sh

40 lines
1.2 KiB
Bash
Raw Permalink Normal View History

#!/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."