Ich lade gelegentlich eine sehr große Datei über scp herunter und es besteht jedes Mal eine geringe Wahrscheinlichkeit, dass die Verbindung unterbrochen und die Übertragung auf halbem Weg unterbrochen wird.
Gibt es eine Möglichkeit, es wieder aufzunehmen?
linux
file-transfer
scp
GJ.
quelle
quelle
dd
mit kleinen Blockgrößen kann langsam sein (hier nur 350 kB / s). Glücklicherweisescp
scheinen Übertragungen in 1024-Byte-Blöcken zu erfolgen. Wenn dies für Ihre Datei der Fall ist (oder indem Sie sie auf den nächsten 1024-Byte-Block kürzen), können Sie sie folgendermaßen beschleunigen :ssh rsys "dd if=./srcfile bs=1024 skip=$sofar" >> ./destfile
. (Beachten Sie, dass$sofar
dann die Anzahl der 1024-Byte-Blöcke sein muss, um zu überspringen!)rsys
in der zweiten Zeile nur ein Beispiel für einen Hostnamen steht, für den kein spezielles Argument vorliegtssh
. Ich schlage vor, Sie ersetzen es durchuser@host
, um Verwirrung zu vermeiden.Mit
scp
, nein.Wenn beide Enden es haben, können Sie
rsync -LvzP remoteserver:path/to/file localfile
eine einzelne Datei übertragen.quelle
Ja, es gibt Möglichkeiten, ab dem Punkt der Unterbrechung fortzufahren, aber mit scp ist dies nicht möglich.
sftp reget filename
macht was du brauchst. Yarek und Grawity haben gültige Lösungen bereitgestellt, die I +1 für beide sind, aber für die Wiederaufnahme von einem Unterbrechungspunkt mag ich rsync. Bei den angegebenen Beispielbefehlen wird davon ausgegangen, dass Sie eine Datei von einem Remote-Server auf Ihre lokale Workstation abrufen (Herunterladen). Bitte beachten Sie, dass die letzten beiden Parameter in dieser Reihenfolge als Quelldatei und Zieldatei betrachtet werden sollten. Die Syntax des Dateinamens hängt davon ab, ob die Quell- oder Zieldatei lokal oder remote ist. Wenn ich [Text] -Dateien senden (hochladen) würde, würde ich die Beispiele wie folgt umschreiben:Und zur rsync-Lösung füge ich hinzu
-e ssh
. Sie sollten überlegen, ob Sie Ausführlichkeit, Komprimierung, Beibehaltung des Eigentums, Berechtigungen, Zeitstempel, Rekursionsverzeichnisse usw. benötigen. Überprüfen Sie die Manpages und Google auf den Parameter -L. Möglicherweise möchten Sie, dass Symlinks als Links verbleiben, anstatt auf sie zu verweisen.rsync -P -e ssh local_source_file remoteserver:path/to/interrupted_target_file
quelle
Es gibt eine andere Lösung (außer den hier angegebenen
rsync
oderdd
Lösungen), von der ich überrascht bin, dass niemand sie erwähnt hat: Es ist derreput
Befehl vonsftp
.quelle
Hier können Sie das Zeitlimit für eine Verbindung angeben. Kann verhindern, dass Ihre Verbindung unterbrochen wird.
quelle
Ja, wenn beide Enden sftp unterstützen - nach einem
scp remoteuser@remotehost:/absolute/filename .
Fehler können Sie fortfahren, indem Sie den Download fortsetzensftp remoteuser@remotehost
und dannreget /absolute/filename
fortsetzen.quelle