Haciendo del Desarrollo y la Arquitectura Web, ciencia y pasión.

Comandos de PostgreSQL

Aqui van los comandos de consola (CLI) relacionados con PostgreSQL y tambien, un pequeño script para lanzar backups periodicos:


🐘 Equivalente para PostgreSQL (psql y pg_dump)


🔹 Comandos de consola con psql

🔸 Conectarse al servidor PostgreSQL:

psql -U usuario -d nombre_base

🔸 Conectarse a un host remoto:

psql -h direccion_ip -U usuario -d nombre_base

🔸 Ejecutar un archivo SQL:

psql -U usuario -d nombre_base -f archivo.sql

🔸 Ejecutar un comando SQL desde consola:

psql -U usuario -d nombre_base -c "SELECT * FROM tabla;"

🔹 Comandos típicos con pg_dump

🔸 Respaldar una base de datos completa:

pg_dump -U usuario nombre_base > respaldo.sql

🔸 Respaldar una base de datos con compresión:

pg_dump -U usuario nombre_base | gzip > respaldo.sql.gz

🔸 Respaldar una tabla específica:

pg_dump -U usuario -t nombre_tabla nombre_base > tabla.sql

🔸 Respaldar solo la estructura:

pg_dump -U usuario -s nombre_base > estructura.sql

🔸 Respaldar todas las bases de datos:

pg_dumpall -U usuario > todas_las_bases.sql

🔸 Restaurar una base de datos:

psql -U usuario -d nombre_base < respaldo.sql

🔄 Automatización de respaldos con PostgreSQL

🔸 Script backup_postgres.sh

#!/bin/bash

# Configuración
USUARIO="tu_usuario"
BASES=(base1 base2)
DIR_BACKUP="/ruta/a/backups"
FECHA=$(date +%F)

mkdir -p "$DIR_BACKUP"

for BASE in "${BASES[@]}"; do
    pg_dump -U "$USUARIO" "$BASE" | gzip > "$DIR_BACKUP/${BASE}_$FECHA.sql.gz"
done

Asegúrate de que el usuario pueda autenticarse sin contraseña, o usa .pgpass para guardar credenciales.


⏰ Programar con cron

Igual que antes:

crontab -e

Y añade:

0 2 * * * /ruta/a/backup_postgres.sh