Menyalin beberapa file dari jarak jauh menggunakan rsync over ssh

8

Saya ingin menyalin beberapa file dari mesin jarak jauh menggunakan rsync. Jadi saya menggunakan perintah berikut.

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

Ini menunjukkan kesalahan berikut

Arg lokal yang tidak terduga: file2.zip Jika arg adalah file / dir remote, awali dengan tanda titik dua (:). rsync error: sintaks atau kesalahan penggunaan (kode 1) di main.c (1362) [Receiver = 3.1.0]

SuperKrish
sumber

Jawaban:

10

Semua file jarak jauh harus menjadi satu argumen untuk rsync. Jadi, cukup masukkan semua file jarak jauh dalam tanda kutip tunggal:

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

BTW, Anda juga dapat melakukan ini dengan Asterisk (Asterisk akan diselesaikan oleh remote shell):

rsync -Pav -e 'ssh -i sshkey' 'user@remotemachine:/home/user/*.zip' .
Alexander Simon
sumber
1
Ini bekerja hebat karena Alexander yang Agung
SuperKrish
9

Ini cukup tua, tetapi jawaban yang diterima agak terlalu ketat - beberapa file tidak selalu merupakan argumen tunggal untuk rsync. Dari 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}

jadi perintah OP adalah

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

Ini tidak mungkin untuk versi rsync yang lebih lama, tapi saya pikir semua distro besar beberapa dengan ini selama beberapa tahun sekarang.

demosito
sumber