Kopieren mehrerer Dateien von Remote mit rsync über ssh


8

Ich möchte mehrere Dateien von einem Remote-Computer mit kopieren rsync. Also benutze ich den folgenden Befehl.

rsync -Pav -e 'ssh -i sshkey' user@remotemachine:/home/user/file1.zip file2.zip file3.zip  .

Es zeigt folgenden Fehler

Unerwartetes lokales Argument: file2.zip Wenn arg eine entfernte Datei / ein entferntes Verzeichnis ist, stellen Sie ihm einen Doppelpunkt (:) voran. rsync-Fehler: Syntax- oder Verwendungsfehler (Code 1) bei main.c (1362) [Receiver = 3.1.0]

Antworten:


10

Alle entfernten Dateien sollten ein Argument für rsync sein. Setzen Sie einfach alle Remote-Dateien in einfache Anführungszeichen:

rsync -Pav -e 'ssh -i sshkey' 'user@remotemachine:/home/user/file1.zip file2.zip file3.zip' .

Übrigens können Sie dies auch mit einem Sternchen tun (das Sternchen wird dann von der Remote-Shell aufgelöst):

rsync -Pav -e 'ssh -i sshkey' 'user@remotemachine:/home/user/*.zip' .

1
Es funktioniert großartig wegen Alexander dem Großen
SuperKrish

9

Dies ist ziemlich alt, aber die akzeptierte Antwort ist etwas zu streng - mehrere Dateien sind nicht unbedingt ein einziges Argument für rsync. Von man rsync:

ADVANCED USAGE
       The  syntax  for  requesting  multiple  files  from a remote host is done by specifying additional remote-host args in the same style as the first, or with the hostname omitted.  For
       instance, all these work:

              rsync -av host:file1 :file2 host:file{3,4} /dest/
              rsync -av host::modname/file{1,2} host::modname/file3 /dest/
              rsync -av host::modname/file1 ::modname/file{3,4}

so wäre OPs Befehl

rsync -Pav -e 'ssh -i sshkey' user@remotemachine:/home/user/file1.zip :/home/user/file2.zip :/home/user/file3.zip  .

Dies ist für ältere Versionen von rsync nicht möglich, aber ich denke, dass alle wichtigen Distributionen dies seit einigen Jahren tun.

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.