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.

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.
