📦 Comprimir y empaquetar con tar y gzip en Linux

Shared post

Empaquetar logs, configs o un release sigue siendo pan de cada día en servidores Linux. tar + gzip es el combo más portable.

El peligro no es crear el archive: es extraerlo en el sitio equivocado o incluir secretos por accidente. Este post cubre el flujo seguro.

Verás creación, listado, extracción controlada, excludes y errores típicos que llenan discos o pisan ficheros.

💡 Por qué seguir usando tar

  • Mover varios ficheros en un solo artefacto
  • Backups rápidos antes de un cambio
  • Distribuir releases sin depender de herramientas raras
  • Evitar copiar árboles con scp fichero a fichero

🚀 Comandos y ejemplos

Crear .tar.gz:

tar -czvf /tmp/www-backup-$(date +%F).tar.gz -C /var/www .

-C cambia al directorio antes de empaquetar; así evitas rutas absolutas dentro del archive.

Listar contenido sin extraer:

tar -tzvf /tmp/www-backup-2026-09-09.tar.gz | head

Revisa siempre qué hay dentro antes de extraer en producción.

Extraer en un directorio concreto:

mkdir -p /tmp/restore && tar -xzvf /tmp/www-backup-2026-09-09.tar.gz -C /tmp/restore

Nunca extraigas a ciegas sobre /.

Excluir caches y secretos:

tar -czvf app.tar.gz --exclude='.env' --exclude='node_modules' --exclude='.git' -C /var/www/app .

Los excludes te salvan de filtrar credenciales en un backup compartido.

Ver progreso en árboles grandes:

tar -czf /backup/app.tar.gz -C /var/www app --checkpoint=1000 --checkpoint-action=echo='%{} files'

Útil cuando el archive tarda minutos y quieres saber si sigue vivo.

🔧 Ejemplo práctico paso a paso

1. Prepara el destino con espacio

Antes de comprimir /var/www, mira df -h /tmp. Si no cabe el .tar.gz, el comando fallará a mitad o llenará el disco.

2. Crea el archive con excludes

tar -czvf /tmp/app-$(date +%F).tar.gz \
  --exclude='.env' --exclude='*.log' \
  -C /var/www app

3. Verifica el contenido

tar -tzf /tmp/app-*.tar.gz | head -30 y confirma que no aparece .env ni rutas absolutas raras.

4. Prueba de restauración en /tmp

Extrae en /tmp/restore-test, compara ficheros clave, y solo entonces mueve a la ruta real.

⚠️ Errores frecuentes

tar con rutas absolutas sin -C. Acabas con un archive que al extraer recrea /var/www dentro de donde no quieres. Prefiere -C y rutas relativas.

Incluir .env o claves SSH. Un backup compartido por chat/email con secretos es una filtración. Excluye y revisa con -tzf.

Extraer encima del origen sin backup. Puedes pisar configs buenas con una versión vieja. Restaura primero en carpeta temporal.

💡 Buenas prácticas

  1. Nombra archives con fecha: app-2026-09-09.tar.gz.
  2. Lista siempre con -tzf antes de extraer en prod.
  3. Guarda checksums (sha256sum) si el archive viaja entre máquinas.
  4. No dejes .tar.gz enormes en /tmp sin limpieza.

📝 Conclusión

tar/gzip bien usado es aburrido y fiable: justo lo que quieres en un servidor.

Convierte tu comando habitual en un script con excludes y verificación; el yo-del-futuro lo agradecerá.


Shared post