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
- Nombra archives con fecha: app-2026-09-09.tar.gz.
- Lista siempre con -tzf antes de extraer en prod.
- Guarda checksums (sha256sum) si el archive viaja entre máquinas.
- 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á.