Làm thế nào để di chuyển thư mục từ máy chủ này sang máy chủ khác?


10

Tôi có quyền truy cập SSH vào cả hai máy chủ, một trong số đó trống. Làm cách nào tôi có thể di chuyển thư mục trang web từ máy chủ cũ sang máy chủ mới thông qua kết nối SSH?

PS: Trên cả hai máy chủ là unix

Câu trả lời:


15

Yêu thích của tôi là rsync. Nó đủ thông minh để chỉ sao chép những gì phải được sao chép (tức là thay đổi hoặc mới).

rsync -avz /source/path user@desthost:/destination/path/

Lưu ý cuối cùng /ở cuối để yêu cầu rsync sao chép bên trong đường dẫn đó (không qua nó).
rsyncchăm sóc quản lý kết nối ssh cho bạn. Các avztùy chọn (điển hình) yêu cầu rsyncsử dụng chế độ lưu trữ (tar), để sao chép đệ quy và giữ càng nhiều giá trị ngày và người dùng càng tốt. Các vtùy chọn là tiết để cho bạn thấy những gì hiện đang xảy ra. Các ztùy chọn sẽ nén (nén) việc chuyển nhượng để hy vọng tiết kiệm thời gian và băng thông.

rsync là rất mạnh mẽ và được sử dụng bởi hầu hết các chuyên gia, tuy nhiên bạn có thể muốn kiểm tra nó trước tiên bằng cách sử dụng dữ liệu không có giá trị để đảm bảo đường dẫn và các tùy chọn phù hợp với yêu cầu.

Nếu bạn cần sử dụng rsync qua SSH trên một cổng không chuẩn như 2222, bạn có thể sử dụng lệnh sau ( xem bài viết này ):

rsync -avz -e 'ssh -p 2222' /source/path user@desthost:/destination/path/

Tôi nghĩ rsync là một giải pháp tốt hơn ssh vì lý do mà ring0 đã đưa ra, tức là nó chỉ sao chép những gì cần sao chép. Vì vậy, nếu bạn cần làm điều này nhiều hơn một lần rsync sẽ cung cấp cho bạn một lợi thế so với scp thẳng.
Jason Tan

1
rsync chắc chắn là công cụ. Nhưng về dấu gạch chéo: điều này rất quan trọng đối với nguồn không phải là đích: rsync -a / src / / Dest sao chép mọi thứ theo src trong Dest, rsync -a / src / Dest sao chép src và mọi thứ bên dưới nó thành Dest / src / .
Oscar


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.