juntekim.com/mist_infra/scripts/backup_k9s_storage_to_s3.sh
Jun-te Kim 5453f92c69 push
2025-12-13 23:22:24 +00:00

42 lines
960 B
Bash

#!/usr/bin/env bash
set -euo pipefail
# ----------------------------------------------------------
# Weekly full backup of all Kubernetes PV data
# ----------------------------------------------------------
SOURCE_DIR="/k8s_storage"
TMP_DIR="/tmp/mist-backups"
BUCKET="mist-backups"
DATE="$(date -u +%Y-%m-%d)"
TIMESTAMP="$(date -u +%Y-%m-%d_%H-%M-%S)"
HOST="$(hostname)"
ARCHIVE_NAME="k8s_storage_${HOST}_${TIMESTAMP}.tar.gz"
ARCHIVE_PATH="${TMP_DIR}/${ARCHIVE_NAME}"
echo "=== Mist weekly PV backup ==="
echo "Source: ${SOURCE_DIR}"
echo "Archive: ${ARCHIVE_PATH}"
echo "Bucket: s3://${BUCKET}/${DATE}/"
mkdir -p "${TMP_DIR}"
echo "→ Creating tarball"
tar \
--numeric-owner \
--xattrs \
--acls \
-czf "${ARCHIVE_PATH}" \
-C "${SOURCE_DIR}" .
echo "→ Uploading to S3"
aws s3 cp \
"${ARCHIVE_PATH}" \
"s3://${BUCKET}/${DATE}/${ARCHIVE_NAME}"
echo "→ Cleaning up local temp"
rm -f "${ARCHIVE_PATH}"
echo "✅ Backup complete"