Copiar múltiples archivos de forma remota usando rsync sobre ssh


8

Quiero copiar múltiples archivos de la máquina remota usando rsync. Entonces uso el siguiente comando.

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

Muestra el siguiente error

Argumento local inesperado: file2.zip Si arg es un archivo / directorio remoto, prefijelo con dos puntos (:). Error de rsync: sintaxis o error de uso (código 1) en main.c (1362) [Receiver = 3.1.0]

Respuestas:


10

Todos los archivos remotos deben ser un argumento para rsync. Entonces, solo ponga todos los archivos remotos entre comillas simples:

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

Por cierto, también puede hacer esto con un Asterisco (el Asterisco lo resolverá el shell remoto entonces):

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

1
Funciona muy bien
gracias a

9

Esto es bastante antiguo, pero la respuesta aceptada es demasiado estricta: varios archivos no son necesariamente un argumento único para 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}

entonces el comando de OP sería

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

Esto no es posible para las versiones anteriores de rsync, pero creo que todas las distribuciones importantes algunas de ellas desde hace varios años.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.