Ich versuche, Dateien von einem Remoteserver zu synchronisieren, der nicht zuverlässig ist, was bedeutet, dass die Verbindung "zufällig" fehlschlägt
rsync: Verbindung unerwartet geschlossen
Rsync wird mit --partial aufgerufen, daher möchte ich rsync in einer Schleife aufrufen können, bis die Dateien vollständig übertragen wurden. Es scheint kein Flag zu geben, das rsync anweist, es erneut zu versuchen.
Was wäre der beste Weg, um es zu schreiben? Eine Bash for Loop?
Antworten:
Wenn Sie alles auf einmal synchronisieren, rufen Sie rsync in einer Schleife auf, bis Sie mit rsync einen erfolgreichen Rückkehrcode erhalten.
So etwas wie:
Dies führt eine Schleife durch, die rsync aufruft, bis der Rückgabewert 0 lautet. Möglicherweise möchten Sie dort einen Sleep hinzufügen, um die DOS-Installation Ihres Servers zu unterbinden.
quelle
RC=12; while [[ $RC -eq 12 || $RC -eq 30 ]]
(oder den Exit-Status, den Sie bei Netzwerkabbrüchen sehen).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 Wiederholungsversuchen aufgepeppt und auf Strg-C reagiert: http://blog.iangreenleaf.com/2009/03/rsync-and-retrying- bis-wir-es-bekommen.html .
quelle
purtting alles zusammen mit sshpass
quelle