sangue/scripts/dumpapostgresdavps.sh

20 lines
761 B
Bash
Executable File

#! /bin/bash --
# REQUISITI:
# sul server E sul client ci deve essere installato:
# - pgdump versione corretta
# - zstd
# - base64
# - ssh server
set -e
DOVE="$(mktemp)"
cd "$(dirname "$0")/.." && source .env
COMANDO='set -e; cd "'"$2"'" && source env_docker && PGPASSWORD="$DB_PASSWORD" pg_dump -h localhost -p "${DB_PORT:-5432}" -U "${DB_USER:postgres}" -c -Fc -Z0 "$DB_NAME" | zstd'
B64=$(echo "$COMANDO" | base64)
ssh "$1" "echo '$B64' | base64 -d | bash" | zstdcat > "$DOVE"
echo 'DROP DATABASE "'"$DB_NAME"'";' | psql -h localhost -p "${DB_PORT:-5432}" -U "${DB_USER:postgres}"
pg_restore -h localhost -p "${DB_PORT:-5432}" -U "${DB_USER:postgres}" -d "$DB_NAME" --clean -Fc -j $(cat /proc/cpuinfo | grep processor | wc -l) "$DOVE"
rm -rf "$DOVE"