Estoy tratando de sincronizar archivos de un servidor remoto que no es confiable, lo que significa que la conexión tiende a fallar "al azar" con
rsync: conexión inesperadamente cerrada
Rsync se llama con --partial, por lo que me gustaría poder llamar a rsync en un bucle hasta que los archivos se transfieran por completo. No parece haber una bandera para decirle a rsync que vuelva a intentarlo.
¿Cuál sería la mejor manera de escribirlo? ¿Una fiesta de bucle?
Respuestas:
Si está sincronizando todo en una sincronización, llame a rsync en un bucle hasta que rsync le proporcione un código de retorno exitoso.
Algo como:
Esto hará un bucle, llamando a rsync, hasta que obtenga un código de retorno de 0. Es posible que desee agregar una suspensión allí para evitar DOSing su servidor.
fuente
RC=12; while [[ $RC -eq 12 || $RC -eq 30 ]]
(o cualquier estado de salida que esté viendo en las caídas de red).Me encontré con este mismo problema hace un tiempo. Al final escribí algo similar a la respuesta de David, pero lo compuse un poco con reintentos máximos, respondiendo a Ctrl-C y tal: http://blog.iangreenleaf.com/2009/03/rsync-and-retrying- until-we-get-it.html .
fuente
purting todo junto con sshpass
fuente