This commit is contained in:
Sarukesh Boominathan 2026-05-13 09:22:18 +02:00
parent e581827e42
commit 9a47eb720e

View File

@ -1,73 +0,0 @@
#!/bin/bash
set -e
# =============================================================
# PasteVault - backup.sh
# Dumps the PostgreSQL database and uploads to Azure Blob Storage.
#
# Prerequisites:
# - postgresql-client installed (sudo apt install postgresql-client)
# - Azure CLI installed and logged in
# - .env file present with DB_PASS set
#
# Usage:
# cd sk1/
# bash scripts/backup.sh
# =============================================================
source .env
DB_HOST="pastevault-db.postgres.database.azure.com"
DB_USER="pvadmin"
DB_NAME="pastevault"
STORAGE_ACCOUNT="pastevaultstorage"
CONTAINER="backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="pastevault_backup_${TIMESTAMP}.sql"
TMP_PATH="/tmp/$BACKUP_FILE"
echo "🔄 PasteVault Backup — $TIMESTAMP"
echo ""
# Check pg_dump is available
if ! command -v pg_dump &> /dev/null; then
echo "Installing postgresql-client..."
sudo apt-get install -y postgresql-client -qq
fi
# Dump the database
echo "1/2 — Dumping PostgreSQL database..."
PGPASSWORD="$DB_PASS" pg_dump \
--host=$DB_HOST \
--username=$DB_USER \
--dbname=$DB_NAME \
--no-password \
--clean \
--if-exists \
--file=$TMP_PATH \
--sslmode=require
echo " ✅ Dump complete: $BACKUP_FILE ($(du -sh $TMP_PATH | cut -f1))"
# Upload to Azure Blob Storage
echo ""
echo "2/2 — Uploading to Azure Blob Storage..."
az storage blob upload \
--account-name $STORAGE_ACCOUNT \
--container-name $CONTAINER \
--name $BACKUP_FILE \
--file $TMP_PATH \
--overwrite \
--output none
rm $TMP_PATH
echo " ✅ Upload complete"
echo ""
echo "✅ Backup saved: $BACKUP_FILE"
echo ""
echo " List all backups:"
echo " az storage blob list --account-name $STORAGE_ACCOUNT --container-name $CONTAINER -o table"
echo ""
echo " Download a backup:"
echo " az storage blob download --account-name $STORAGE_ACCOUNT --container-name $CONTAINER --name $BACKUP_FILE --file ./restore.sql"