Fix gitignore: allow scripts/backup, ignore /var/backups only
This commit is contained in:
Executable
+36
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
# Backup Lakehouse git state + critical Docker volumes to ObjectScale/local path.
|
||||
set -euo pipefail
|
||||
|
||||
REPO="${REPO:-/root/lakehouse}"
|
||||
BACKUP_ROOT="${BACKUP_ROOT:-/var/backups/atc-lakehouse}"
|
||||
DATE=$(date +%Y%m%d-%H%M%S)
|
||||
DEST="$BACKUP_ROOT/$DATE"
|
||||
S3_ENDPOINT="${S3_ENDPOINT:-http://10.0.20.111:9020}"
|
||||
S3_BUCKET="${S3_BUCKET:-backups}"
|
||||
|
||||
mkdir -p "$DEST"
|
||||
|
||||
echo "==> Git archive"
|
||||
tar czf "$DEST/lakehouse-git.tgz" -C "$(dirname "$REPO")" "$(basename "$REPO")" \
|
||||
--exclude=".git/objects/pack/*.tmp"
|
||||
|
||||
echo "==> Docker volumes (docker01)"
|
||||
for vol in forgejo_forgejo superset_superset_home lam_lam; do
|
||||
if docker volume inspect "$vol" &>/dev/null; then
|
||||
docker run --rm -v "${vol}:/data:ro" -v "$DEST:/backup" alpine \
|
||||
tar czf "/backup/${vol}.tgz" -C /data .
|
||||
echo " backed up $vol"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "==> Config snapshot via collect"
|
||||
"$REPO/scripts/collect/collect-fleet-config.sh" || true
|
||||
|
||||
if command -v aws &>/dev/null && [[ -n "${AWS_ACCESS_KEY_ID:-}" ]]; then
|
||||
echo "==> Upload to ObjectScale"
|
||||
aws --endpoint-url "$S3_ENDPOINT" s3 cp "$DEST" "s3://${S3_BUCKET}/lakehouse/${DATE}/" --recursive
|
||||
fi
|
||||
|
||||
echo "Backup complete: $DEST"
|
||||
ls -la "$DEST"
|
||||
Reference in New Issue
Block a user