Sao chép tệp bằng rsync từ máy chủ từ xa sang máy cục bộ


319

Khi tôi đã vào máy chủ từ xa của mình, lệnh sẽ sao chép tất cả các tệp từ một thư mục sang một thư mục cục bộ trên máy của tôi?


4
Bởi vì bạn có thể rsynctrực tiếp từ máy cục bộ của bạn.
Johnsyweb

2
Đương nhiên tôi làm được. Tôi thấy các câu trả lời khác bây giờ. Cảm ơn.
markstewie

17
Đây là nhiệm vụ chung cho phát triển (web) với một câu trả lời tốt. Tôi không thấy lý do tại sao nó vẫn đóng cửa.
d.raev 17/12/14

6
Tôi nghĩ rằng @ d.raev đã đề cập đến thực tế rằng câu hỏi đã bị đóng vì lạc đề (nếu tôi nhớ lại chính xác, tôi đã gắn cờ cho câu hỏi này để được chuyển sang SuperUser, nơi tôi nghĩ rằng nó phù hợp hơn) thay vì không có câu trả lời được chấp nhận . Tuy nhiên ... thật tốt khi câu trả lời của tôi được chấp nhận sau tất cả thời gian này. :-)
Johnsyweb

3
@markstewie không có cảm xúc xấu, đó là một câu hỏi hay và nó đã giúp tôi (dường như nhiều người khác nữa) nhưng điều này "đóng cửa" khiến nó trông không đáng tin nên tôi không muốn chú ý đến nó.
d.raev

Câu trả lời:


575

Từ máy cục bộ của bạn:

rsync -chavzP --stats user@remote.host:/path/to/copy /path/to/local/storage

Từ máy cục bộ của bạn với cổng ssh không chuẩn:

rsync -chavzP -e "ssh -p $portNumber" user@remote.host:/path/to/copy /local/path

Hoặc từ máy chủ từ xa, giả sử bạn thực sự muốn làm việc theo cách này và máy cục bộ của bạn đang nghe trên SSH:

rsync -chavzP --stats /path/to/copy user@host.remoted.from:/path/to/local/storage

Xem man rsyncđể được giải thích về các công tắc thông thường của tôi.


255
Giải thích về lệnh: explainshell.com/...
beefsack

118
Wow rằng trang web giải thích là tuyệt vời.
gosukiwi

2
@cmcdragonkai: thực sự, máy chủ cục bộ phải đang chạy máy chủ ssh và có thể truy cập được vào máy chủ từ xa. Đây là một trong những lý do mà tôi thích giải pháp đầu tiên hơn giải pháp thứ hai.
Johnsyweb

16
Hãy cẩn thận khi rsyncing với dấu gạch chéo. Lệnh được đưa ra bởi Johnnysweb sẽ tạo một thư mục có tên là copy bên trong /path/to/local/storage. Thích như vậy /path/to/local/storage/copy. Nếu đó là những gì bạn muốn tuyệt vời. Tuy nhiên, một kịch bản phổ biến hơn là bạn muốn sao chép nội dung của thư mục từ xa vào một thư mục trong địa phương của bạn. Sau đó, bạn sẽ làm điều /path/to/copy/đó sẽ đặt nội dung bên trong thư mục /path/to/local/storagemà không cần tạo một thư mục sao chép cục bộ.
chap

16
Tôi đến đây vì một lệnh rsync và tôi đã đến với notifyshell.com . Cảm ơn @beefsack!
Cyphase

49

Nếu bạn có quyền truy cập SSH, trước tiên bạn không cần SSH và sau đó sao chép, chỉ cần sử dụng Sao chép bảo mật (SCP) từ đích.

scp user@host:/path/file /localpath/file

Nhân vật thẻ hoang dã được hỗ trợ, vì vậy

scp user@host:/path/folder/* /localpath/folder

sẽ sao chép tất cả các tệp từ xa trong thư mục đó. Nếu sao chép nhiều hơn thì một thư mục.

lưu ý -r cũng sẽ sao chép tất cả các thư mục con và nội dung.


6
Tại sao sử dụng scpchứ không phải rsync? Ngoài ra, xem vỏ của bạn không cố gắng mở rộng user@host:/path/folder/*, có lẽ bằng cách sử dụng dấu ngoặc đơn ( ').
Johnsyweb

Tôi thấy scp dễ sử dụng hơn từ đích đến .... Về cơ bản, nó là bản sao tệp qua ssh, nhưng trước hết phải thiết lập kết nối ssh.
Tezyn

8
Tôi biết đó scplà gì , đó không phải là câu hỏi của tôi. Tại sao bạn không sử dụng rsync? Đây là những gì câu hỏi yêu cầu, không yêu cầu phiên SSH được thiết lập thường nhanh hơn và hiệu quả hơn scp.
Johnsyweb

26
Hãy nhớ rằng, scp theo symlink thay vì sao chép chúng. Điều này có thể dẫn đến việc sao chép nhiều hơn bạn mong đợi và mất liên kết tượng trưng (chúng trở thành các thư mục / tệp bình thường).
Thứ Hai

2
Phản ứng của Mondane chính xác là lý do tôi tìm thấy bài đăng này. Thông thường, tôi sử dụng scp cho mọi thứ, nhưng tôi cần phải giữ quyền và symlink từ máy chủ này đến máy chủ khác. Ngoài ra, sự khác biệt về tốc độ (bc người mới của tôi chắc chắn đã đạt được trước tiên) là rất lớn.
kyle
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.