Làm thế nào để gửi một đầu ra của lệnh unix từ một máy chủ đến một máy chủ khác?


Câu trả lời:


20

Nói chung, bạn luôn có thể làm:

<command> | ssh user@remote-server "cat > output.txt"

Nó tiết kiệm cho đầu ra của <command>để output.txttập tin trong máy chủ từ xa.

Trong trường hợp của bạn, trên Máy chủ-1:

echo "qwerty" | ssh user@Server-2 "cat > output.txt"

Nếu hai máy chủ không có kết nối, nhưng bạn có thể ssh đến cả hai máy chủ, thì từ máy cục bộ, bạn có thể làm:

ssh user@Server-1 "<command>" | ssh user@Server-2 "cat > output.txt"

Tôi đã thử và tôi nhận được lỗi kết nối đã hết thời gian .. Tôi nghĩ rằng không có kết nối giữa hai máy chủ .. Có cách nào khác không ??
vinod

1
@vinod: Đó là sự cố kết nối từ hai máy chủ, bạn không thể thực hiện việc này nếu hai máy chủ không có kết nối. Hãy chắc chắn rằng bạn có thể ssh từ Server-1 đến Server-2. Bạn có thể ssh từ máy cục bộ đến cả hai máy chủ?
cuonglm

vâng ... Tôi có thể ssh cả hai máy chủ riêng biệt với máy cục bộ
vinod

6

Bạn có thể chạy:

ssh remote_server "command" > file_on_local_host.txt

hoặc sử dụng đầu ra làm đầu vào cho lệnh cục bộ:

ssh remote_server "remote_command" | local_command


1

Vì bạn không thể kết nối trực tiếp từ máy chủ 1 đến máy chủ 2, bạn có thể sử dụng máy này, có máy cục bộ ở giữa:

ssh server1 command | ssh server2 "cat > output.txt"
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.