Как отправить вывод команды unix с одного сервера на другой сервер?


10

Как перенаправить вывод команды unix с одного сервера на другой.

Я должен быть в состоянии отправить вывод команды Unix с сервера-1. Тогда я смогу получить выходные данные на сервере-2 и записать их в файл.


Ответы:


20

Вообще, вы всегда можете сделать:

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

Сохраняет вывод <command>в output.txtфайл на удаленном сервере.

В вашем случае на Сервере-1:

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

Если два сервера не имеют соединения, но вы можете подключиться по ssh к обоим серверам, то с локальной машины вы можете сделать:

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

Я пытался, и я получаю тайм-аут ошибки соединения .. Я думаю, что нет никакой связи между двумя серверами .. Есть ли другой способ ??
Винод

1
@vinod: Это проблема подключения двух серверов, вы не можете сделать это, если два сервера не имеют подключения. Убедитесь, что вы можете ssh с сервера-1 на сервер-2. Можете ли вы ssh с локальной машины на оба сервера?
cuonglm

да ... я могу ssh оба сервера отдельно от локальной машины
винод

6

Вы можете запустить:

ssh remote_server "command" > file_on_local_host.txt

или используйте вывод как ввод для локальной команды:

ssh remote_server "remote_command" | local_command


1

Поскольку вы не можете подключиться напрямую с сервера 1 на сервер 2, вы можете использовать это, имея локальный компьютер в середине:

ssh server1 command | ssh server2 "cat > output.txt"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.