Solution 1 :
Si vous synchronisez tout en une seule synchronisation, appelez rsync en boucle jusqu'à ce que rsync vous donne un code de retour réussi.
Quelque chose comme :
RC=1
while [[ $RC -ne 0 ]]
do
rsync -a .....
RC=$?
done
Cela bouclera, appelant rsync, jusqu'à ce qu'il donne un code de retour de 0. Vous voudrez peut-être ajouter un sommeil là-dedans pour éviter de DOSer votre serveur.
Solution 2 :
J'ai rencontré ce même problème il y a quelque temps. À la fin, j'ai écrit quelque chose de similaire à la réponse de David, mais je l'ai un peu améliorée avec un maximum de tentatives, répondant à Ctrl-C, etc.:http://blog.iangreenleaf.com/2009/03/rsync-and-retrying- jusqu'à ce que nous l'obtenions.html.
Solution 3 :
mettre le tout ensemble avec sshpass
while ! sshpass -p 'xxxx' rsync --partial --append-verify --progress -a -e 'ssh -p 22' /source/ [email protected]:/dest/; do sleep 5;done