it is what it is
This commit is contained in:
parent
c2b898ad76
commit
a171bd2fec
1 changed files with 42 additions and 0 deletions
42
mist_infra/scripts/backup_k8s_storage_to_s3.sh
Normal file
42
mist_infra/scripts/backup_k8s_storage_to_s3.sh
Normal file
|
|
@ -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"
|
||||||
Loading…
Add table
Reference in a new issue