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

10

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

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

Винод
источник
Связанный: unix.stackexchange.com/questions/34273/…
Антон Тарасенко

Ответы:

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"
cuonglm
источник
Я пытался, и я получаю тайм-аут ошибки соединения .. Я думаю, что нет никакой связи между двумя серверами .. Есть ли другой способ ??
Винод
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"
pqnet
источник