Kopieren von Dateien mit rsync vom Remote-Server auf den lokalen Computer


318

Wie lautet der Befehl, wenn ich alle Dateien von einem Verzeichnis in ein lokales Verzeichnis auf meinem Computer kopiert habe?


4
Weil Sie rsyncdirekt von Ihrem lokalen Computer aus können.
Johnsyweb

2
Oh ... ja ich kann. Ich sehe jetzt die anderen Antworten. Vielen Dank.
Markstewie

17
Dies ist eine häufige Aufgabe für die (Web-) Entwicklung mit einer guten Antwort. Ich verstehe nicht, warum es noch geschlossen ist.
d.raev

6
Ich denke, @ d.raev bezog sich auf die Tatsache, dass die Frage als nicht zum Thema gehörend geschlossen wurde (wenn ich mich richtig erinnere, habe ich markiert, dass diese Frage zu SuperUser migriert wird, wo sie meiner Meinung nach besser passt), anstatt dass es keine akzeptierte Antwort gab . Trotzdem ... es war schön, dass meine Antwort nach all der Zeit akzeptiert wurde. :-)
Johnsyweb

3
@markstewie keine schlechten Gefühle, es ist eine gute Frage und es hat mir geholfen (scheint auch viele andere zu sein), aber dieses "geschlossene" lässt es nicht vertrauenswürdig aussehen, so dass ich es gewohnt bin, etwas Aufmerksamkeit darauf zu lenken.
d.raev

Antworten:


575

Von Ihrem lokalen Computer:

rsync -chavzP --stats user@remote.host:/path/to/copy /path/to/local/storage

Von Ihrem lokalen Computer mit einem nicht standardmäßigen SSH-Port:

rsync -chavzP -e "ssh -p $portNumber" user@remote.host:/path/to/copy /local/path

Oder vom Remote-Host, vorausgesetzt, Sie möchten wirklich so arbeiten und Ihr lokaler Computer lauscht SSH:

rsync -chavzP --stats /path/to/copy user@host.remoted.from:/path/to/local/storage

Siehe man rsyncfür eine Erklärung meiner üblichen Schalter.


255
Eine Erklärung des Befehls: explainshell.com/...
beefsack

118
Wow, diese Erklärungsseite ist großartig.
Gosukiwi

2
@cmcdragonkai: In der Tat muss der lokale Host einen SSH-Server ausführen und für den Remote-Host zugänglich sein. Dies ist einer der Gründe, warum ich die erste Lösung der zweiten vorziehe.
Johnsyweb

16
Seien Sie vorsichtig, wenn Sie mit nachgestellten Schrägstrichen synchronisieren. Der von Johnnysweb gegebene Befehl würde ein Verzeichnis namens copy inside erstellen /path/to/local/storage. Wie so /path/to/local/storage/copy. Wenn es das ist, was du großartig willst. Ein häufigeres Szenario ist jedoch, dass Sie den Inhalt des Remote-Verzeichnisses in ein Verzeichnis in Ihrem lokalen Verzeichnis kopieren möchten. Dann würden Sie tun, /path/to/copy/was den Inhalt innerhalb des Verzeichnisses platzieren würde, /path/to/local/storageohne ein lokales Kopierverzeichnis zu erstellen.
Kap

16
Ich bin wegen eines rsync-Befehls hierher gekommen und habe EXPLAINSHELL.com erhalten . Danke @beefsack!
Cyphase

50

Wenn Sie über SSH-Zugriff verfügen, müssen Sie nicht zuerst SSH und dann kopieren. Verwenden Sie einfach Secure Copy (SCP) vom Ziel.

scp user@host:/path/file /localpath/file

Platzhalterzeichen werden also unterstützt

scp user@host:/path/folder/* /localpath/folder

kopiert alle entfernten Dateien in diesem Ordner. Wenn mehr als ein Verzeichnis kopiert wird.

note -r kopiert auch alle Unterordner und Inhalte.


6
Warum scpeher verwenden als rsync? Achten Sie auch darauf, dass Ihre Shell nicht versucht, sich zu erweitern user@host:/path/folder/*, möglicherweise mithilfe von einfachen Anführungszeichen ( ').
Johnsyweb

Ich finde es einfacher, scp vom Ziel aus zu verwenden ... Im Wesentlichen handelt es sich um eine Dateikopie über ssh, ohne dass zuerst die ssh-Verbindung hergestellt werden muss.
Tezyn

8
Ich weiß was scpist, das war nicht meine Frage. Warum hast du nicht benutzt rsync? Dies ist, was die Frage verlangt, erfordert keine etablierte SSH-Sitzung und ist oft schneller und effizienter als scp.
Johnsyweb

26
Denken Sie daran, scp folgt Symlinks, anstatt sie zu kopieren. Dies kann dazu führen, dass mehr kopiert wird als erwartet und Symlinks verloren gehen (diese werden zu normalen Ordnern / Dateien).
Mondane

2
Mondanes Antwort ist genau der Grund, warum ich diesen Beitrag gefunden habe. Normalerweise verwende ich scp für alles, aber ich musste die Berechtigungen und den Symlink von Server zu Server beibehalten. Auch der Geschwindigkeitsunterschied (bc mein Neuling selbst definitiv zuerst scped) war riesig.
Kyle
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.