Copia di più file da remoto usando rsync su ssh


8

Voglio copiare più file dalla macchina remota usando rsync. Quindi uso il seguente comando.

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

Mostra il seguente errore

Arg locale inatteso: file2.zip Se arg è un file / dir remoto, prefissalo con due punti (:). Errore rsync: sintassi o errore di utilizzo (codice 1) su main.c (1362) [Ricevitore = 3.1.0]

Risposte:


10

Tutti i file remoti dovrebbero essere un argomento per rsync. Quindi, basta inserire tutti i file remoti tra virgolette singole:

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

A proposito, puoi anche farlo con un asterisco (l'asterisco verrà risolto dalla shell remota quindi):

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

1
Funziona alla grande a causa di Alessandro Magno
SuperKrish,

9

Questo è piuttosto vecchio, ma la risposta accettata è un po 'troppo rigida: più file non sono necessariamente un singolo argomento da rsincronizzare. Da 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}

così sarebbe il comando di OP

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

Questo non è possibile per le versioni precedenti di rsync, ma penso che tutte le maggiori distro con alcune di queste siano ormai da diversi anni.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.