Ejercicio de programación: Backup automatizado de PostgreSQL
Este ejercicio de programación está diseñado para poner a prueba tus conocimientos en CertiDevs.
Contenido del ejercicio
Escribe un script en Bash backup_postgres.sh que realice una copia de seguridad diaria de una base de datos PostgreSQL y la comprima con gzip. El script debe ser idempotente, cumplir buenas practicas de scripting robusto y estar preparado para ejecutarse desde cron.
Instrucciones especificas
El script debe aceptar los siguientes parametros por variables de entorno o con valores por defecto:
PGHOST(por defectolocalhost)PGPORT(por defecto5432)PGUSER(por defectopostgres)PGDATABASE(obligatorio, sin valor por defecto)BACKUP_DIR(por defecto/var/backups/postgres)RETENTION_DAYS(por defecto7)
Pasos que debe realizar:
- Activar modo estricto con
set -euo pipefaily propagar errores en tuberias. - Verificar con
command -v pg_dumpque la herramientapg_dumpesta instalada; si no, salir con codigo 1 y mensaje astderr. - Verificar que la variable
PGDATABASEesta definida y no vacia; en caso contrario, mostrar uso porstderry salir con codigo 2. - Crear el directorio
BACKUP_DIRsi no existe (mkdir -p). - Generar un fichero con nombre
{PGDATABASE}_{YYYYmmdd_HHMMSS}.sql.gzdentro deBACKUP_DIR. - Ejecutar
pg_dumpconectandose con los parametros indicados y redirigir la salida agzip -9para comprimirla. - Escribir un log con timestamp (formato
[YYYY-mm-dd HH:MM:SS]) enBACKUP_DIR/backup.logindicando exito y tamaño del fichero resultante. - Al finalizar, borrar de
BACKUP_DIRlos ficheros*.sql.gzcon antiguedad superior aRETENTION_DAYSdias usandofind. - Salir con codigo 0 si todo fue bien y loguear cualquier fallo de
pg_dumpcon codigo de salida distinto de cero.
Formato de invocacion esperado:
PGDATABASE=ventas BACKUP_DIR=/tmp/backups ./backup_postgres.sh
Requisitos adicionales
- Usar solo Bash 5.x y utilidades estandar (
pg_dump,gzip,find,date,stat). - No imprimir la contraseña; usar fichero
~/.pgpasso variablePGPASSWORDexterna al script. - Script idempotente y reejecutable sin efectos secundarios indeseados.
Más ejercicios de CertiDevs
Explora más ejercicios de programación en CertiDevs para mejorar tus habilidades y obtener tu certificación.
Ver más ejercicios de CertiDevsExplora el curso completo de CertiDevs
Descubre más contenido de CertiDevs con lecciones, ejercicios y módulos organizados para tu aprendizaje.
Lecciones de CertiDevs
Aprende los conceptos fundamentales con tutoriales detallados
Ejercicios de CertiDevs
Practica con más ejercicios de programación
Módulos de CertiDevs
Explora todos los módulos del curso organizados por temas
Curso completo de CertiDevs
Ver el temario completo con todos los contenidos del curso
Todas las tecnologías
Explora todos los cursos de programación disponibles
Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, CertiDevs es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear ejercicios prácticos y contenido educativo de calidad para desarrolladores de todos los niveles.
Solución al ejercicio de programación en CertiDevs
¡Desbloquea la solución completa!
Completa el ejercicio de programación en CertiDevs para acceder a la solución paso a paso, explicaciones detalladas y mejores prácticas.
Practica con ejercicios de programación en CertiDevs
Mejora tus habilidades con cientos de ejercicios de práctica, recibe retroalimentación instantánea y obtén tu certificación cuando estés listo.
Asistente de IA
Aprende de tus errores
Progreso
Mide tu avance
Certificación
Valida tus habilidades
Ejercicios de programación en CertiDevs: Práctica y Certificación
Los ejercicios de programación son fundamentales para dominar CertiDevs. Este ejercicio está diseñado para poner a prueba tus conocimientos prácticos y ayudarte a consolidar lo aprendido en las lecciones teóricas. La práctica constante con ejercicios de programación es la clave para convertirte en un desarrollador experto.
¿Por qué resolver ejercicios de programación?
Resolver ejercicios de programación en CertiDevs te permite:
- Aplicar conocimientos teóricos: Poner en práctica los conceptos aprendidos en las lecciones de CertiDevs.
- Identificar áreas de mejora: Descubrir qué conceptos necesitas reforzar en tu aprendizaje de CertiDevs.
- Prepararte para certificaciones: Los ejercicios te preparan para obtener certificados profesionales en CertiDevs.
- Mejorar tu perfil profesional: Demostrar tus habilidades prácticas en CertiDevs.
Metodología de aprendizaje
Nuestros ejercicios de programación están diseñados siguiendo una metodología probada de aprendizaje progresivo. Cada ejercicio en CertiDevs está cuidadosamente estructurado para llevar tus habilidades al siguiente nivel. Comenzamos con conceptos fundamentales y avanzamos gradualmente hacia desafíos más complejos que reflejan situaciones reales del desarrollo de software profesional.
Certificación y validación de conocimientos
Al completar ejercicios de programación, no solo mejoras tus habilidades técnicas, sino que también puedes obtener certificados que validan tu expertise en CertiDevs. Estos certificados son reconocidos por empresas y pueden ser una gran adición a tu perfil profesional de LinkedIn o tu CV como desarrollador.
Los ejercicios están alineados con los estándares de la industria y cubren desde conceptos básicos hasta técnicas avanzadas de programación en CertiDevs. Cada ejercicio incluye casos de prueba y ejemplos prácticos que te ayudarán a comprender mejor cómo aplicar lo aprendido en proyectos reales.