Zuverlässige Dateiübertragung über langsame oder flockige Netzwerkverbindung

8

Ich muss eine Reihe von Dateien über eine Breitbandverbindung von geringer Qualität auf einen Server übertragen. Die Dateien sind groß und die Übertragung pro Datei dauert ungefähr 30 Minuten.

Ich benutze scp, aber es hängt manchmal - die Übertragung schlägt nicht mit einem Fehler fehl, es läuft weiter, aber es werden keine weiteren Daten übertragen.

Daher suche ich nach einer "ausfallsicheren" Upload-Lösung, die auch dann funktioniert, wenn der Link einige Minuten lang ausfällt oder auf andere Weise unzuverlässig ist.

Meine Idee ist:

  1. Teilen Sie große Dateien in kleine Teile
  2. Laden Sie Teile mit Timeout hoch und versuchen Sie es erneut, wenn dies fehlschlägt

Fragen:

  • Gibt es ein sofort einsatzbereites Tool, das diese Idee umsetzt? (kein spezifischer Bedarf an scp. könnte ftp oder irgendetwas anderes sein)
  • Gibt es eine Möglichkeit zu erkennen, wann scp hängt? ((das heißt, es läuft noch, überträgt aber keine Daten)
user1219721
quelle

Antworten:

15

Sie können rsync verwenden, um Ihre Datei von einem Computer auf den anderen zu kopieren. rsync kann ssh als zugrunde liegenden Transport verwenden. Kombinieren Sie es rsync --partialmit einem Skript wie diesem , um es bei einem Netzwerkausfall erneut zu versuchen, und Sie sollten in der Lage sein, Ihre Dateien auch bei Netzwerkfehlern zu verschieben.

Eine andere Möglichkeit wäre, das Remote-Dateisystem mit auf Ihrem lokalen Computer zu mounten sshfs -o reconnectund dann einfach die Datei (en) zu kopieren. sshfs / Linux kümmert sich um den Rest. Basierend auf einigen Tests, die ich heute durchgeführt habe, scheint dies viel langsamer zu sein als rsync.

Schließlich können Sie ein VPN zwischen den beiden Computern einrichten. Dies erfordert die meiste Arbeit, und jede der oben genannten Lösungen ist viel einfacher, würde jedoch das Problem einer flockigen Netzwerkverbindung lösen. Und wie einige Leute bemerkt haben, kann dies auch schuppig sein. Es kann funktionieren, wenn das VPN sehr aggressiv ist, um Verbindungen wiederherzustellen, wie es OpenVPN ist, aber die oben genannten Lösungen sind viel besser.

Michael Hampton
quelle
1
Damit dies funktioniert, müssen Sie das --partialFlag (oder etwas --partialÄhnliches --inplace) verwenden. Andernfalls wird die teilweise Übertragung gelöscht, wenn die Übertragung unterbrochen wird, und Sie müssen erneut beginnen.
Womble
Rsync ist definitiv der richtige Weg ... oder eine Robokopie für Fenster.
Brian Adkins
Wie genau würde ein VPN bei einer Flakey-Verbindung helfen?
EEAA
Die VPN-Software (z. B. OpenVPN) kann im Hintergrund automatisch eine Verbindung zu allen Anwendungen herstellen, die über das VPN ausgeführt werden.
Michael Hampton
@ErikA Meine Gedanken genau - VPN über Flakey Link = Flakey VPN, das immer neu gestartet werden muss. Es fügt dem Problem nur eine zweite Ebene hinzu, nämlich dass die Transportsoftware in der Lage sein muss, die Dateiübertragung genau dort neu zu starten, wo sie unterbrochen wurde.
Fiasco Labs