jewn
This commit is contained in:
parent
e581827e42
commit
9a47eb720e
@ -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"
|
||||
Loading…
Reference in New Issue
Block a user