sftp put - entspricht rsync

sftp put - entspricht rsync

Ich möchte den Befehl verwenden, putum eine laufende Dateiübertragung sftpnach einer unterbrochenen Pipe wiederherzustellen.

Dateien sollten nur hochgeladen werden, wenn die Zielgröße kleiner ist als die der Quelldatei.

Ich habe keinen sshZugriff, also rsyncist das keine Option.

Von demSFTP-Handbuch, ich habe versucht, die Flags anzugeben put -a -r source_dir/. Allerdings habe ich bei der Übertragung Fehlermeldungen erhalten.

  • Fehler: Couldn't stat remote file: No such file or directoryfür Dateien nicht auf dem Server
  • Fehler: Destination file bigger or same size as source filefür Dateien, die sich bereits auf dem Server befinden und eigentlich nicht übertragen werden sollten

Reales Beispiel für den 1. Fehler:

Uploading of file /Volumes/Seagate/amphioxus/raw_h5/9N0Bp0b0_m150427_041848_42182_c100810932550000001823181110291543_s1_p0.2.bax.h5.gz to /deposits/Pacbio_amphioxus/raw_h5/9N0Bp0b0_m150427_041848_42182_c100810932550000001823181110291543_s1_p0.2.bax.h5.gz failed!
Couldn't stat remote file: No such file or directory

Natürlich existiert die Datei im Quellverzeichnis.

Gibt es hierfür Lösungen?

Antwort1

Dies ist zwar keine Lösung, ein Workaround besteht jedoch darin, den Server lokal zu mounten und dann einfach die Daten zu kopieren.

sshfskann zum Mounten des Remote-Verzeichnisses verwendet werden:

sudo sshfs -o allow_other,default_permissions [email protected]:/ /mnt/local_directory

Dann benutze

cp -ru

Dabei werden die im gemounteten Remote-Verzeichnis vorhandenen Dateien durch die fehlenden ersetzt.

Antwort2

Die beste Lösung besteht darin, einen Administrator des Remote-Systems zu bitten, Ihnen sshZugriff und Nutzung zu gewähren rsyncoder ggf. nur rsyncden Zugriff zu gewähren, wenn dies möglich ist.

sftpkann Dateien ablegen (und abrufen), jedoch keine Verzeichnisse (Verzeichnisbäume mit deren Inhalt).

Eine Problemumgehung besteht darin,Erstellen Sie ein Tarball [komprimiertes] Tarfile und legen Sie es mitsftp.


tar -cvzf filename.tar.gz source_dir/

Wenn Sie es wiederherstellen müssen, erhalten Sie es mit sftpdem Inhalt überprüfen

tar -tvf filename.tar.gz

Stellen Sie sicher, dass Sie sich im richtigen Verzeichnis befinden, und extrahieren Sie aus dem Tarball.

tar -xvf filename.tar.gz

Antwort3

Die Option „Verwenden“ -avon sftp man sftpbesagt, dass sftp angewiesen wird, „zu versuchen, unterbrochene Übertragungen fortzusetzen, anstatt vorhandene teilweise oder vollständige Kopien von Dateien zu überschreiben. Wenn sich die teilweisen Inhalte von den übertragenen unterscheiden, ist die resultierende Datei wahrscheinlich beschädigt.“

verwandte Informationen