#!/usr/bin/env bash set -euo pipefail # ================================================== # CONFIG # ================================================== K8S_STORAGE_ROOT="/home/kimjunte/k8s_storage" BACKUP_ROOT="/tmp/k8s-backups" S3_BUCKET="s3://mist-backups" AWS_PROFILE_NAME="personal" AWS_CONFIG_FILE="/home/kimjunte/.aws/config" AWS_SHARED_CREDENTIALS_FILE="/home/kimjunte/.aws/credentials" export AWS_PROFILE="$AWS_PROFILE_NAME" export AWS_CONFIG_FILE export AWS_SHARED_CREDENTIALS_FILE DATE="$(date -u +%Y-%m-%d_%H-%M-%S)" BACKUP_DIR="$BACKUP_ROOT/$DATE" ARCHIVE_NAME="k8s_storage_$DATE.tar.gz" ARCHIVE_PATH="$BACKUP_DIR/$ARCHIVE_NAME" mkdir -p "$BACKUP_DIR" echo "" echo "========================================" echo "=== K8S STORAGE BACKUP STARTED" echo "=== $(date -u)" echo "========================================" echo "" # ================================================== # VERIFY AWS IDENTITY # ================================================== echo "Using AWS profile: $AWS_PROFILE" aws sts get-caller-identity # ================================================== # CREATE ARCHIVE (EXCLUDE POSTGRES) # ================================================== echo "Creating archive..." sudo tar \ --ignore-failed-read \ --warning=no-file-changed \ --exclude="$K8S_STORAGE_ROOT/postgres" \ -czf "$ARCHIVE_PATH" \ -C /home/kimjunte \ k8s_storage echo "✔ Archive created:" du -h "$ARCHIVE_PATH" # ================================================== # GENERATE CHECKSUM # ================================================== sha256sum "$ARCHIVE_PATH" > "$ARCHIVE_PATH.sha256" echo "✔ Checksum generated" # ================================================== # UPLOAD TO S3 # ================================================== echo "Uploading to S3..." aws s3 cp "$ARCHIVE_PATH" "$S3_BUCKET/$DATE/" aws s3 cp "$ARCHIVE_PATH.sha256" "$S3_BUCKET/$DATE/" echo "✔ Uploaded to $S3_BUCKET/$DATE/" # ================================================== # CLEAN LOCAL TEMP FILES (optional but recommended) # ================================================== rm -rf "$BACKUP_DIR" echo "" echo "========================================" echo "=== BACKUP COMPLETED SUCCESSFULLY" echo "========================================" echo ""