From a171bd2fec1a1cc4db2ab3295baa3a1274e607b3 Mon Sep 17 00:00:00 2001 From: Jun-te Kim Date: Sun, 14 Dec 2025 00:41:39 +0000 Subject: [PATCH] it is what it is --- .../scripts/backup_k8s_storage_to_s3.sh | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 mist_infra/scripts/backup_k8s_storage_to_s3.sh diff --git a/mist_infra/scripts/backup_k8s_storage_to_s3.sh b/mist_infra/scripts/backup_k8s_storage_to_s3.sh new file mode 100644 index 0000000..77c5136 --- /dev/null +++ b/mist_infra/scripts/backup_k8s_storage_to_s3.sh @@ -0,0 +1,42 @@ +#!/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"