Files
MSP-CAS/scripts/backup-db.sh
MSP Monitor f4491757d9 Initial commit: MSP Monitor Dashboard
- Next.js 14 frontend with dark cyan/navy theme
- tRPC API with Prisma ORM
- MeshCentral, LibreNMS, Headwind MDM integrations
- Multi-tenant architecture
- Alert system with email/SMS/webhook notifications
- Docker Compose deployment
- Complete documentation
2026-01-21 19:29:20 +00:00

73 lines
2.0 KiB
Bash

#!/bin/bash
# MSP Monitor Dashboard - Database Backup Script
# Crea un backup de la base de datos PostgreSQL
set -e
# Configuracion
BACKUP_DIR="${BACKUP_DIR:-/backups}"
RETENTION_DAYS="${RETENTION_DAYS:-30}"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="msp_monitor_${DATE}.sql.gz"
# Cargar variables de entorno
if [ -f .env ]; then
export $(cat .env | grep -v '^#' | xargs)
fi
# Valores por defecto
DB_HOST="${DB_HOST:-localhost}"
DB_PORT="${DB_PORT:-5432}"
DB_USER="${POSTGRES_USER:-mspmonitor}"
DB_NAME="${POSTGRES_DB:-msp_monitor}"
DB_PASSWORD="${POSTGRES_PASSWORD:-changeme}"
echo "======================================"
echo " MSP Monitor - Database Backup"
echo "======================================"
echo "Fecha: $(date)"
echo "Base de datos: $DB_NAME"
echo ""
# Crear directorio de backups si no existe
mkdir -p "$BACKUP_DIR"
# Crear backup
echo "Creando backup..."
export PGPASSWORD="$DB_PASSWORD"
pg_dump -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" \
--no-owner --no-privileges --format=custom | gzip > "$BACKUP_DIR/$BACKUP_FILE"
unset PGPASSWORD
# Verificar que el backup se creo correctamente
if [ -f "$BACKUP_DIR/$BACKUP_FILE" ]; then
SIZE=$(du -h "$BACKUP_DIR/$BACKUP_FILE" | cut -f1)
echo "[✓] Backup creado: $BACKUP_DIR/$BACKUP_FILE ($SIZE)"
else
echo "[✗] Error creando backup"
exit 1
fi
# Eliminar backups antiguos
echo ""
echo "Limpiando backups antiguos (mas de $RETENTION_DAYS dias)..."
find "$BACKUP_DIR" -name "msp_monitor_*.sql.gz" -type f -mtime +$RETENTION_DAYS -delete
REMAINING=$(ls -1 "$BACKUP_DIR"/msp_monitor_*.sql.gz 2>/dev/null | wc -l)
echo "[✓] Backups restantes: $REMAINING"
# Opcional: Subir a S3 si esta configurado
if [ -n "$S3_BUCKET" ] && command -v aws &> /dev/null; then
echo ""
echo "Subiendo backup a S3..."
aws s3 cp "$BACKUP_DIR/$BACKUP_FILE" "s3://$S3_BUCKET/backups/$BACKUP_FILE"
echo "[✓] Backup subido a s3://$S3_BUCKET/backups/$BACKUP_FILE"
fi
echo ""
echo "======================================"
echo " Backup completado"
echo "======================================"