J'essaie de synchroniser des fichiers à partir d'un serveur distant qui n'est pas fiable, ce qui signifie que la connexion a tendance à échouer "au hasard" avec
rsync: connexion inopinément fermée
Rsync est appelé avec --partial, donc j'aimerais pouvoir appeler rsync en boucle jusqu'à ce que les fichiers soient entièrement transférés. Il ne semble pas y avoir d'indicateur pour indiquer à rsync de réessayer.
Quelle serait la meilleure façon de l'écrire? Un bash pour la boucle?
Réponses:
Si vous synchronisez tout en une seule synchronisation, appelez rsync en boucle jusqu'à ce que rsync vous donne un code retour réussi.
Quelque chose comme:
Cela va boucler, en appelant rsync, jusqu'à ce qu'il donne un code retour de 0. Vous voudrez peut-être y ajouter un sommeil pour éviter de mettre votre serveur en DOS.
la source
RC=12; while [[ $RC -eq 12 || $RC -eq 30 ]]
(ou quels que soient les états de sortie que vous voyez des baisses de réseau).J'ai rencontré ce même problème il y a quelque temps. En fin de compte, j'ai écrit quelque chose de similaire à la réponse de David, mais je l'ai un peu gussied avec max retries, répondant à Ctrl-C, et autres: http://blog.iangreenleaf.com/2009/03/rsync-and-retrying- jusqu'à ce que nous l'obtenions.html .
la source
purtting all all with sshpass
la source