Copie de plusieurs fichiers à distance à l'aide de rsync sur ssh


8

Je souhaite copier plusieurs fichiers à partir d'une machine distante à l'aide de rsync. J'utilise donc la commande suivante.

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

Il montre l'erreur suivante

Arg local inattendu: file2.zip Si arg est un fichier / répertoire distant, préfixez-le avec deux-points (:). Erreur rsync: erreur de syntaxe ou d'utilisation (code 1) sur main.c (1362) [Receiver = 3.1.0]

Réponses:


10

Tous les fichiers distants doivent être un argument pour rsync. Donc, mettez simplement tous les fichiers distants entre guillemets simples:

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

BTW, vous pouvez également le faire avec un astérisque (l'astérisque sera alors résolu par le shell distant):

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

1
Cela fonctionne très bien à cause d'Alexandre le Grand
SuperKrish

9

C'est assez ancien, mais la réponse acceptée est un peu trop stricte - plusieurs fichiers ne sont pas nécessairement un seul argument pour rsync. De 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}

donc la commande de OP serait

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

Ce n'est pas possible pour les anciennes versions de rsync, mais je pense que toutes les principales distributions en contiennent depuis plusieurs années.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.