Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿tar muestra “Unexpected EOF”? Demuestra la integridad antes de extraer otra vez

Conserva los bytes, prueba por separado la compresión y la estructura tar, compara tamaño y hash con el origen y después reemplaza o recupera en cuarentena.

Ilustración original: La extensión .tar, .tar.gz o .tgz orienta, pero no prueba los bytes ni el filtro real.
Ilustración original: El tráiler gzip contiene CRC32 e ISIZE; comprueba el miembro gzip, no cada miembro tar contra un manifiesto externo. Watch at Ease

“Unexpected EOF” significa que el lector agotó los bytes recibidos antes de terminar la estructura o el miembro actual. Repetir la extracción no puede crear el sufijo ausente.

Conserva el archivo exacto, identifica las capas, compara tamaño y hash con una fuente confiable y reemplaza o recupera solo sobre una copia. Obtener algunos archivos no demuestra integridad.

Aislar los bytes exactos antes de reintentar

Copia o renombra el archivo sospechoso a una ruta de evidencia y registra bytes, hash, origen, comando de adquisición, hora y error completo. No vuelvas a extraer sobre el destino real.

En una tubería conserva ambos comandos y estados. Sin pipefail o equivalente, el éxito del consumidor puede ocultar la desconexión del productor.

Identificar cada capa por evidencia

Inspecciona tipo y bytes iniciales, y prueba aparte el envoltorio declarado. Usa gzip -t solo si los bytes son realmente gzip.

Después ejecuta tar -tf sobre una copia o mediante el descompresor correcto para separar un gzip dañado de un tar interior terminado antes de tiempo.

Demostrar integridad frente al productor

Obtén el número esperado de bytes y un hash desde una fuente confiable o desde el productor. Compara ambos antes de llamar reparación a otra descarga.

En copias por flujo captura estados de envío y recepción, tamaños y hashes en ambos extremos. Un código cero es evidencia más débil que bytes idénticos.

Separar marcador final y carga perdida

tar usa registros de 512 bytes y normalmente termina con bloques cero. Falta del marcador convencional no equivale a EOF dentro de una cabecera o carga pendiente.

--ignore-zeros solo continúa tras bloques cero; no fabrica carga ausente. Si se detiene dentro de un miembro, lo posterior falta y lo ya escrito es provisional.

Reemplazar o recapturar sin borrar evidencia

Descarga o transmite a un nombre temporal nuevo; valida capa, tamaño y hash confiable antes de reemplazar atómicamente el archivo sospechoso.

Si el productor es un sistema de archivos activo, congélalo o usa una instantánea. Un origen cambiante puede ser incoherente aunque la transferencia termine.

Recuperar solo en una copia y definir salida

Si el origen ya no existe, trabaja solo sobre un duplicado en cuarentena. Lista primero, extrae a un destino nuevo y valida cada resultado con registros independientes.

Termina solo cuando el reemplazo supera pruebas gzip y tar, coincide con tamaño o hash del origen y funciona en el flujo original. Marca el rescate como incompleto.

Ilustración original: Una descarga o tubería interrumpida puede dejar un prefijo válido y archivos parciales; existir no es una prueba de aceptación.
Ilustración original: La salida exige pruebas limpias de capa, tamaño o hash alineado con el origen y repetir el flujo original. Watch at Ease