Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿rsync dice “Broken pipe (32)”? Encuentra el primer extremo que falló antes de ajustar SSH

El mensaje del emisor suele llegar después de que falló el receptor o el shell remoto. Conserva ambos registros, repara el primer límite y verifica la copia reanudada.

Diagrama que ordena el fallo receptor antes del Broken pipe emisor.
Ilustración original de Watch at Ease: conserva, ordena y clasifica ambos extremos. Watch at Ease

El mensaje del emisor suele llegar después de que falló el receptor o el shell remoto. Conserva ambos registros, repara el primer límite y verifica la copia reanudada.

EPIPE significa escribir cuando el lector de la tubería o socket ya se cerró. Rsync distingue salidas de I/O de socket, I/O de archivo, flujo de protocolo y timeout.

1. Captura ambos lados del mismo fallo

Guarda comando completo, rsync --version en ambos hosts, stderr local, registros remotos o del kernel, tiempos y códigos de cada proceso. Oculta credenciales, no el orden.

Distingue la ruta remote-shell de un solo dos puntos de la ruta daemon con doble dos puntos o rsync://.

2. Ordena el primer error

Broken pipe en el emisor solo dice que desapareció el lector. Alinea tiempos y busca si el receptor registró primero ENOSPC, EIO, permisos, proceso muerto o montaje.

Los códigos ayudan: 10 socket I/O, 11 archivo I/O, 12 flujo de protocolo y 30 timeout. El 255 suele pertenecer al shell remoto; conserva su diagnóstico.

3. Clasifica almacenamiento, transporte o protocolo

Para almacenamiento revisa sistema de destino, montaje, bloques e inodos, permisos, cuotas y mensajes I/O. Para transporte prueba SSH solo y revisa equipos intermedios.

ServerAlive puede detectar un par SSH sin respuesta, pero no arregla disco. --timeout define silencio I/O de rsync; tampoco es una cura universal.

4. Repara y reanuda deliberadamente

Corrige el primer límite probado. Si conservas parciales, define --partial o --partial-dir y repite sin cambiar por accidente la semántica de barras finales.

Versiones iguales no prueban la causa, ni la compresión explica toda caída. Cambia una sola variable por reintento controlado.

5. Verifica el árbol final

Exige salida 0 y luego un itemized dry run sobre el mismo origen y destino. Investiga cada diferencia; los bytes transferidos no prueban integridad.

Verifica archivos grandes y metadatos críticos con hashes o controles adecuados, y conserva los registros emparejados y la corrección.

Puertas de receptor, transporte y datos copiados.
Ilustración original de Watch at Ease: reanuda solo con todos los límites sanos. Watch at Ease