GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Gibt es eine Möglichkeit, ein unterbrochenes scp einer Datei fortzusetzen?

Mit scp , nein.

Wenn es an beiden Enden vorhanden ist, können Sie rsync -LvzP remoteserver:path/to/file localfile verwenden um eine einzelne Datei zu übertragen.


Sie können den folgenden Ansatz versuchen:anstelle von scp Verwenden Sie dd um den heruntergeladenen Teil zu überspringen und den Rest an die Datei anzuhängen.

sofar=`ls -l ./destfile | awk '{print $5}'`
ssh rsys "dd if=./srcfile bs=1 skip=$sofar" >> ./destfile

Mögliche Optimierung:Arbeite mit großen Blöcken. Lassen wir das als Hausaufgabe.


Ja, es gibt Möglichkeiten, ab dem Punkt der Unterbrechung fortzufahren, aber es ist nicht möglich, scp zu verwenden. sftp reget filename macht was du brauchst. Yarek und Grawity haben gültige Lösungen bereitgestellt, die ich beiden +1 gebe, aber um von einem Unterbrechungspunkt fortzufahren, mag ich rsync. Die bereitgestellten Beispielbefehle gehen beide davon aus, dass Sie eine Datei von einem Remote-Server auf Ihre lokale Arbeitsstation abrufen (herunterladen). Bitte beachten Sie, dass die letzten beiden Parameter in dieser Reihenfolge als source_file und target_file 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 bereitgestellten Beispiele umschreiben als:

#From local to remote
sofar=`ssh remote_system ls -l interrupted_file | awk '{print $5}'`;
dd if=source_file bs=1 skip=$sofar | ssh remote_system "cat >> ./interrupted_file"

Und zur rsync-Lösung füge ich -e ssh hinzu . Sie sollten überlegen, ob Sie Ausführlichkeit, Komprimierung, Eigentumsrechte, Berechtigungen, Zeitstempel, rekursive Verzeichnisse usw. benötigen oder nicht. Überprüfen Sie die Manpages und Google bezüglich des Parameters -L. Möglicherweise möchten Sie, dass Symlinks als Links erhalten bleiben, anstatt auf sie zu verweisen.

rsync -P -e ssh local_source_file remoteserver:path/to/interrupted_target_file


Linux
  1. Intelligentere Dateiübertragungen als Rsync??

  2. Ein cleverer Weg, ein fettes Dateisystem zu defragmentieren?

  3. Gibt es eine Möglichkeit, spaltenweise zu 'uniq'?

  4. Gibt es eine Möglichkeit, den Befehlsprozess für fehlerhafte scp-Befehle (sichere Kopie) in Linux fortzusetzen?

  5. Gibt es eine Möglichkeit, eine NETCDF-Datei zuzuschneiden?

Wie kann ich eine einzelne Datei RSYNC?

Gibt es eine Möglichkeit, die dekomprimierte Größe einer .bz2-Datei zu bestimmen?

Gibt es eine Möglichkeit, ein vorhandenes Nautilus-Lesezeichen (Dateimanager) zu bearbeiten?

Gibt es eine Möglichkeit, Dateien in einer ZIP-Datei zu bearbeiten, ohne sie vorher explizit zu extrahieren?

Gibt es eine Möglichkeit, Badblocks neu zu starten?

Gibt es eine schnelle Möglichkeit, die allerletzte Datei in einem großen TAR zu erhalten?