Sao chép nhiều tệp từ xa bằng rsync qua ssh


8

Tôi muốn sao chép nhiều tập tin từ máy từ xa bằng cách sử dụng rsync. Vì vậy, tôi sử dụng lệnh sau đây.

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

Nó hiển thị lỗi sau

Không mong đợi cục bộ arg: file2.zip Nếu arg là một tệp / thư mục từ xa, hãy đặt tiền tố nó bằng dấu hai chấm (:). Lỗi rsync: lỗi cú pháp hoặc lỗi sử dụng (mã 1) tại main.c (1362) [Người nhận = 3.1.0]

Câu trả lời:


10

Tất cả các tệp từ xa phải là một đối số cho rsync. Vì vậy, chỉ cần đặt tất cả các tệp từ xa trong dấu ngoặc đơn:

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

BTW, bạn cũng có thể thực hiện việc này với Asterisk (Asterisk sẽ được giải quyết bằng shell từ xa):

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

1
Nó hoạt động tuyệt vời vì Alexander The Great
SuperKrish

9

Điều này khá cũ, nhưng câu trả lời được chấp nhận là hơi quá nghiêm ngặt - nhiều tệp không nhất thiết phải là một đối số duy nhất cho rsync. Từ 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}

vì vậy lệnh của OP sẽ là

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

Điều này là không thể đối với các phiên bản cũ hơn của rsync, nhưng tôi nghĩ rằng tất cả các bản phân phối chính với một số bản này trong vài năm nay.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.