~/docs /Backups y Restore
Backups y Restore
Backups y Restore
Imported from Notion: Backups y Restore
updated:: 2026.07.10
Que resuelve
Guia practica para hacer backups verificables con tar, rsync, checksums y pruebas de restauracion.
Regla basica
Un backup no esta validado hasta que has probado a restaurarlo.
Estrategia minima
| Capa | Objetivo |
|---|---|
| Copia local | Recuperacion rapida |
| Copia externa | Resistencia a fallo de disco |
| Versionado | Recuperar estados anteriores |
| Prueba de restore | Confirmar que sirve |
tar
Crear archivo comprimido
tar -czf {BACKUP}.tar.gz {DIR}
Ver contenido
tar -tzf {BACKUP}.tar.gz
Extraer
tar -xzf {BACKUP}.tar.gz -C {DEST}
Preservar permisos
sudo tar --same-owner -xzf {BACKUP}.tar.gz -C {DEST}
rsync
Copia basica
rsync -avh {SOURCE}/ {DEST}/
Copia con borrado en destino
rsync -avh --delete {SOURCE}/ {DEST}/
Simular sin cambiar nada
rsync -avhn --delete {SOURCE}/ {DEST}/
Copia remota por SSH
rsync -avh -e ssh {SOURCE}/ {USER}@{HOST}:{DEST}/
Checksums
Generar checksums
find {DIR} -type f -print0 | sort -z | xargs -0 sha256sum > SHA256SUMS
Verificar checksums
sha256sum -c SHA256SUMS
Bases de datos
PostgreSQL
pg_dump -Fc {DB_NAME} > {DB_NAME}.dump
Restaurar PostgreSQL
pg_restore -d {DB_NAME} {DB_NAME}.dump
MySQL/MariaDB
mysqldump {DB_NAME} > {DB_NAME}.sql
Restaurar MySQL/MariaDB
mysql {DB_NAME} < {DB_NAME}.sql
Restore controlado
Restaurar a directorio temporal
mkdir -p /tmp/restore-test
tar -xzf {BACKUP}.tar.gz -C /tmp/restore-test
Comparar directorios
diff -qr {SOURCE} /tmp/restore-test/{DIR_NAME}
Rotacion simple
Nombre con fecha
BACKUP_NAME="{APP}-$(date +%F_%H%M%S).tar.gz"
Borrar backups antiguos
find {BACKUP_DIR} -type f -name '*.tar.gz' -mtime +{DAYS} -delete
warningPrueba siempre el
findsin-deleteantes de borrar backups antiguos.
Checklist antes de automatizar
-
Que se copia.
-
Que se excluye.
-
Donde se guarda.
-
Cuanto se retiene.
-
Como se restaura.
-
Quien recibe alertas si falla.
Variables
| Variable | Descripcion |
|---|---|
{SOURCE} | Directorio origen |
{DEST} | Directorio destino |
{BACKUP} | Nombre del backup |
{BACKUP_DIR} | Directorio de backups |
{DB_NAME} | Base de datos |
{APP} | Nombre de aplicacion |
{DAYS} | Dias de retencion |
Errores comunes
| Sintoma | Causa probable | Solucion |
|---|---|---|
| Backup incompleto | App escribiendo durante copia | Usa dump/snapshot o ventana de mantenimiento |
| Restore falla por permisos | No preservaste owner | Usa sudo tar --same-owner |
| Disco lleno | Sin rotacion | Define retencion |
| Backup corrupto | Sin verificacion | Usa checksums y restore test |
Checklist final
-
Backup creado.
-
Checksum generado.
-
Restore probado.
-
Retencion definida.
-
Copia externa disponible.
- EOF -