it-swarm.com.de

sftp: Lädt alle in einem Ordner enthaltenen Dateien, Verzeichnisse und Unterverzeichnisse hoch

Auf Maschine A habe ich den Ordner

/home/a/

Auf Maschine B habe ich den Ordner

/home/b/

Ich möchte alle Dateien, Verzeichnisse und Unterverzeichnisse von/home/a in/home/b mit sftp übertragen. Auf Maschine A habe ich die folgenden Befehle ausgeführt:

sftp [email protected]
put /home/a/* /home/b/

aber es funktioniert nicht, ich bekomme die Fehlermeldung: "Nicht-reguläre Datei/home/a/a1 überspringen" ... [a1 ist ein Unterverzeichnis von a]
Wie kann ich die put-Anweisung ändern?

Vielen Dank! :)

BEARBEITEN:

Ich habe mit scp gelöst:

scp -r /home/a/ [email protected]:/home/b/
27
fibon82

Obwohl nicht unbedingt gleichbedeutend mit sftp, ist rsync eine sehr leistungsfähige Alternative für scp und sftp, insbesondere beim Aktualisieren der Kopien von Computer A auf Computer B kopiert nicht die Dateien, die nicht geändert wurden; Es ist auch in der Lage, Dateien von Computer B zu entfernen, die von Computer A gelöscht wurden (natürlich nur, wenn es dazu aufgefordert wird).

In Ihrem Fall wäre die Syntax

rsync -zrp /home/a/ [email protected]:/home/b/

Die Option -r dient zum rekursiven Kopieren von Dateien, -z aktiviert die Komprimierung während der Übertragung und -p behält die Dateiberechtigungen (Dateierstellung, Bearbeitung usw.) beim Kopieren bei, was AFAIK bei scp nicht unterstützt. Viele weitere Optionen sind möglich. Lesen Sie wie gewohnt die Seiten man.

21
Karolos

In sftp lädt dieser Befehl den Inhalt des aktuellen Verzeichnisses rekursiv in das entfernte aktuelle Verzeichnis hoch:

 put -r .

Siehe man sftp .

16
Carlos Da Costa

scp (sichere Kopie) ist das Linux de facto zum Übertragen von Dateien über einen sicheren Tunnel. In Ihrem Fall möchten Sie den rekursiven Schalter verwenden, z.

scp -r /home/a/ [email protected]:/home/b/
9
deed02392

Versuchen Sie es mit

put -r /home/a/ /home/b/

weitere Informationen finden Sie unter: this

4
guest_who

Eigentlich sollte put -r funktionieren. Der Zielordner muss jedoch auf Ihrem Remote-Host vorhanden sein:

sftp> put -r sourcefolder
 Uploading sourcefolder/ to /user/folder
 Couldn't canonicalize: No such file or directory
 ....
sftp> mkdir sourcefolder
sftp> put -r sourcefolder
 Uploading sourcefolder/ to /user/folder/sourcefolder
 Entering sourcefolder/
 sourcefolder/file1
 sourcefolder/file2
0
Dieter