Câu trả lời:
Một từ : rsync
.
Lưu ý rằng nếu bạn đang sử dụng một liên kết chậm hoặc máy chủ đang tải nặng, công cụ được sử dụng để sao chép sẽ không bị nghẽn cổ chai và mọi cách sao chép sẽ bị chậm.
Điều này sẽ cung cấp cho bạn cách sử dụng cơ bản để sao chép giữa máy tính cục bộ của bạn và máy chủ từ xa: http://oreilly.com/pub/h/38
Để sao chép từ máy tính cục bộ sang máy chủ từ xa (tất nhiên bạn cần thay thế đường dẫn, tên người dùng và địa chỉ máy chủ):
rsync -avz -e ssh /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
-a
lưu trữ-v
dài dòng-z
nén-e ssh
"sử dụng đường hầm SSH"Để sao chép theo một hướng khác, chuyển đổi các đường dẫn (đầu tiên là từ , thứ hai là để ):
rsync -avz -e ssh remoteuser@remotehost.somewhere.example.com:/path/on/server /path/on/local/computer
Nhưng rsync hữu ích ngay cả khi sao chép mọi thứ xung quanh trên cùng một máy chủ:
rsync -av /path-to/copy/from /path_to/copy/to
-z
để sao chép hoặc sao chép LAN trong một máy; kiểm tra có và không có -z
bản sao trên Internet (cái này hay cái kia có thể nhanh hơn, tùy thuộc vào nhiều thứ).
-e ssh
hiện được mặc định cho các máy chủ từ xa, do đó không cần thiết phải vượt qua tùy chọn một cách rõ ràng.
Từ khác: scp
scp /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
Đối với giao dịch một shot, scp là tiện dụng. Nếu đó là rất nhiều tệp, thì rsync là một ý tưởng tốt. Nếu một kết nối bị mất, rsync có thể chọn nơi nó dừng lại.
Tôi biết rằng rsync đã nén ( -z
) và vừa biết rằng scp cũng vậy ( -C
).
Trong thiết lập của bạn, rsync có lẽ là đủ ... nhưng như một ví dụ, nếu có nhiều tệp nhỏ, có thể nhanh hơn để tar các tệp trước khi chuyển sau đó qua rsync. Điều này là do việc chuyển chủ sở hữu, dấu thời gian, quyền đôi khi nặng hơn chính tệp nếu tệp nhỏ. Tar sẽ hợp nhất tất cả thông tin đó trong một tệp và rsync sẽ sao chép các khối lớn hơn.
Hoặc thậm chí tốt hơn, nếu không cần bảo mật, hãy sử dụng tar và nc:
Khi đến đích, hãy chuẩn bị một daemon nhận, giải nén và gỡ bỏ:
nc -l -p 12345 | pigz -d | tar xvf -
Trên nguồn, tar mọi thứ, nén song song và gửi nó đến đích:
tar cvf - ./ | pigz | nc host 12345
-z
tùy chọn để sao chép cục bộ vì nó thêm chi phí không cần thiết. IMHO, bạn chỉ nên sử dụng-z
khi sử dụng rsync trên một liên kết mạng chậm. Nếu sao chép số lượng lớn dữ liệu trên 100Base-T, bạn có thể vẫn ổn nếu không có-z
. Với kết nối mạng nhanh, sử dụng nén có thể chốt CPU của bạn và bỏ đói các quy trình khác.