Upload de archivos grandes

Siempre que tengo que subir un archivo grande a algún server, grande mas de 20GB, intento con un simple scp olvidandome de que en Argentina tenemos una conexión a internet malisima, que se corta todo el tiempo y el ancho de banda es malisimo.

Por ende, lo ideal es utilizar algo que suba el archivo y si la conexión sufre algun desperfecto se pueda cancelar y continuar desde donde quedo, resume, aquí es donde rsync viene al rescate. El siguiente comando posee soporte de resume

Para subir

rsync --partial --progress --rsh=ssh [email protected]:remote_file 

Para Bajar

rsync --partial --progress --rsh=ssh [email protected]:remote_file local_file

Un recuerdo de un viejo maestro que viene al caso

Share

Task exited with message: (12) Error in rsync protocol data stream

Ayer mientras realizaba unos deploys en Jenkins con unas tareas creadas en phing (el ant de PHP) me encuentro con que al hacer rsync contra uno de los servidores la task se cortaba con este error.

Task exited with message: (12) Error in rsync protocol data stream

Wtf! me dije a mi mismo, quien habrá metido mano me pregunte ?, buscando el error por google no pude encontrar mucha información adecuada, capaz por que eran las 12 de la noche de un feriado y algo que esperaba sea sencillo se complico, no lo se, pero no pude encontrar mucha info. Después de un buen rato googleando caí en esta FAQ de rsync donde el primer topic dice “the transfer fails to finish“, en el mismo aparecía el mensaje de error y explicaba algunos posibles casos. Las sugerencias a verificar.

  • The destination disk is full
  • An idle connection caused a router or remote-shell server to close the connection.
  • A network error caused the connection to be dropped.
  • The remote rsync executable wasn’t found.
  • Your remote-shell setup isn’t working right or isn’t “clean”

Obviamente mi problema fue el primer caso, después de liberar un poco de espacio en disco ví como el deploy funcionaba nuevamente.

Entre mis búsquedas en google vi varios comentarios respecto al problema de que rsync no era encontrado y sugerían que cambies el path de rsync, también el tema de tener versiones similares de rsync en todos los entornos, pero no era mi caso.

 

Share