Lösung 1:
Wenn Sie alles in einer Synchronisierung synchronisieren, rufen Sie rsync in einer Schleife auf, bis rsync Ihnen einen erfolgreichen Rückgabecode zurückgibt.
Etwas wie:
RC=1
while [[ $RC -ne 0 ]]
do
rsync -a .....
RC=$?
done
Dies wird eine Schleife durchlaufen und rsync aufrufen, bis es einen Rückkehrcode von 0 zurückgibt. Vielleicht möchten Sie dort einen Ruhezustand hinzufügen, um zu verhindern, dass Ihr Server DOSiert.
Lösung 2:
Ich bin vor einiger Zeit auf dasselbe Problem gestoßen. Am Ende habe ich etwas Ähnliches wie Davids Antwort geschrieben, es aber ein wenig mit maximalen Wiederholungen, Antworten auf Strg-C und so weiter verzerrt:http://blog.iangreenleaf.com/2009/03/rsync-and-retrying- bis-wir-es-bekommen.html.
Lösung 3:
alles zusammen mit sshpass
while ! sshpass -p 'xxxx' rsync --partial --append-verify --progress -a -e 'ssh -p 22' /source/ [email protected]:/dest/; do sleep 5;done