Cho đến nay, cách dễ nhất là chỉ sao chép nó qua scp. Thêm vào đó, cú pháp này thực sự hoạt động không giống như một số gợi ý khác.
Bạn không thể đánh bại cú pháp này cho dễ. Nó cho phép bạn sao chép đệ quy, rsync hoặc những gì bạn muốn mà không gặp rắc rối khi xem xét các đường ống có khả năng phức tạp. Cú pháp này rõ ràng bằng trực giác, sẽ dễ dàng được hỗ trợ hơn bởi các Quản trị viên Sys theo dõi bạn và không sử dụng con mèo vô dụng .
scp -3 devappserver:/path/to/copy/from qaappserver:/path/to/copy/to
Từ trang scp man : -3
Bản sao giữa hai máy chủ từ xa được chuyển qua máy chủ cục bộ. Không có tùy chọn này, dữ liệu được sao chép trực tiếp giữa hai máy chủ từ xa. Lưu ý rằng tùy chọn này vô hiệu hóa đồng hồ đo tiến độ.
Trong ví dụ dưới đây
- Máy trạm của bạn được đặt tên là MacBook-Pro.
- Dev Jump Box được đặt tên là devjumpserver
- Máy chủ ứng dụng Dev được đặt tên là devappluggesterver
- Có trên vùng DNS LAN có tên .local
- QA Jump Box được đặt tên là qajumpserver
- Máy chủ ứng dụng QA được đặt tên là qaappluggesterver
- Là trên vùng LAN DNZ có tên .local
- Chúng tôi sẽ thực hiện một bản sao thử nghiệm của tệp 670GB / etc / hosts ;-)
- Giả định được thực hiện là bạn đã cấu hình xác thực khóa công khai SSH.
Đây là tệp ~ / .ssh / config thiết lập quyền truy cập trực tiếp từ máy trạm của bạn đến các máy chủ ứng dụng thông qua bước nhảy thích hợp (còn gọi là máy chủ pháo đài).
MacBook-Pro: ~ barrychapman $ cat ~ / .ssh / config
Tổ chức *
ServerAliveInterval 60
Máy chủ lưu trữ
HostName devappluggesterver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@devjumpserver.example.com -W% h:% p
Người dùng barrychapman
Máy chủ qaappluggesterver
Tên máy chủ qaappluggesterver.local
ProxyCommand ssh -i ~ / .ssh / id_rsa barrychapman@qajumpserver.example.com -W% h:% p
Người dùng barrychapman
MacBook-Pro: ~ barrychapman $
Kiểm tra sự hiện diện của tệp trên máy chủ mục tiêu, nó sẽ không ở đó.
MacBook-Pro: ~ barrychapman $ ssh qaappluggesterver ls / tmp / hosts
ls: không thể truy cập / tmp / hosts: Không có tệp hoặc thư mục như vậy
Bị giết bởi tín hiệu 1.
MacBook-Pro: ~ barrychapman $
Bây giờ, hãy sao chép một tệp từ máy chủ Dev Application sang Ứng dụng QA thông qua máy trạm của bạn.
MacBook-Pro: ~ barrychapman $ scp -3 devappluggesterver: / etc / hosts qaappluggesterver: / tmp /
Bị giết bởi tín hiệu 1.
Bị giết bởi tín hiệu 1.
MacBook-Pro: ~ barrychapman $
Bây giờ, hãy kiểm tra sự hiện diện của tệp được sao chép trên Máy chủ ứng dụng QA. Nó sẽ ở đó lần này
MacBook-Pro: ~ barrychapman $ ssh qaappluggesterver ls / tmp / hosts
/ tmp / máy chủ
Bị giết bởi tín hiệu 1.
MacBook-Pro: ~ barrychapman $
Ghi chú
Khi đóng kết nối ProxyCommand, bạn sẽ thấy thông báo cảnh báo "Bị giết bởi tín hiệu 1". Đây là SSH phá hỏng kết nối ProxyCommand và không có gì đáng báo động. Bạn có thể thoát khỏi nó bằng cách thêm LogLevel Quiet
vào khổ thơ cấu hình máy chủ pháo đài.