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]

SuperKrish
quelle

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' .
Alexander Simon
quelle
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.

Demosito
quelle