Auf der Maschine AI haben den Ordner
/home/a/
Auf der Maschine BI haben den Ordner
/home/b/
Ich möchte alle Dateien, Verzeichnisse und Unterverzeichnisse von / home / a in / home / b mit sftp übertragen.
sftp [email protected]
put /home/a/* /home/b/
aber es funktioniert nicht, ich bekomme die Fehlermeldung: "Nicht-reguläre Datei überspringen / home / a / a1" ... [a1 ist ein Unterverzeichnis von a]
Wie könnte ich die put-Anweisung ändern?
Vielen Dank! :)
BEARBEITEN:
Ich habe mit scp gelöst:
scp -r /home/a/ [email protected]:/home/b/
put -r
hätte auch geklappt.sftp
finden Sie im OpenSSH-Projekt .Antworten:
Obwohl nicht unbedingt mit sftp vergleichbar, ist rsync eine sehr leistungsfähige Alternative für scp und sftp, insbesondere beim Aktualisieren der Kopien von Computer A auf Computer B, da die nicht geänderten Dateien nicht kopiert werden. 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
Die
-r
Option dient zum rekursiven Kopieren von Dateien,-z
aktiviert die Komprimierung während der Übertragung und-p
behält beim Kopieren die Dateiberechtigungen (Erstellen, Bearbeiten usw.) bei, was AFAIK bei scp nicht tut. Viele weitere Optionen sind möglich. Lesen Sie wie gewohnt dieman
Seiten.quelle
rsync
spricht nichtsftp
-Protokoll. Wenn Sie also eine einrichtensftp
-chroot mitssh
‚s Build ininternal-sftp
dannrsync
ausfällt.Mit
sftp
diesem Befehl wird der Inhalt des aktuellen Verzeichnisses rekursiv in das entfernte aktuelle Verzeichnis hochgeladen:Sehen
man sftp
.quelle
-r
Switch wird nur seit OpenSSH 5.4 unterstützt .-r
Switch nur clientseitig ist (Teil dessftp
Befehls). Die Server-Seite (hier: Empfängerseite) benötigt OpenSSH 5.4 nicht, nur der Client muss dies unterstützen.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.quelle
Versuchen Sie es mit
Weitere Informationen finden Sie unter: this
quelle
-r
Switch wird nur seit OpenSSH 5.4 unterstützt .-r
Switch nur clientseitig ist (Teil dessftp
Befehls). Die Server-Seite (hier: Empfängerseite) benötigt OpenSSH 5.4 nicht, nur der Client muss dies unterstützen. Und: Dies sollte die akzeptierte Antwort sein , da es etwas verwirrend ist , (möglicherweise nicht unterstützte)rsync
Antworten auf eine mit Tags versehene Frage zu erhaltensftp
.Eigentlich sollte put -r funktionieren. Der Zielordner muss jedoch auf Ihrem Remote-Host vorhanden sein:
quelle
In meinem Fall
rsync
war das nicht möglich, also habe ich verwendet:quelle
mput
In OpenSSH gibt es keinen Befehlsftp
. Vielleicht verweisen Sie aufpsftp
?