¿Puedo canalizar la salida estándar de un servidor a la entrada estándar de otro servidor?

¿Puedo canalizar la salida estándar de un servidor a la entrada estándar de otro servidor?

stdouten un servidor CentOS debe canalizarse a stdinotro servidor CentOS. es posible?

Actualizar

ScottPack, MikeyB y jofel tienen respuestas válidas. Le di la respuesta a Scott porque, aunque mi pregunta no especificaba la seguridad como requisito, siempre es bueno estar seguro. Sin embargo, las sugerencias de los otros dos compañeros también funcionarán.

Respuesta1

Este es un sí descarado.

Cuando uno utiliza sshpara ejecutar un comando en un servidor remoto, realiza algún tipo de redirección interna de entrada/salida sofisticada. De hecho, creo que esta es una de las características sutilmente mejores de OpenSSH. Específicamente, si utiliza sshpara ejecutar un comando arbitrario en un sistema remoto, entonces ssh se asignará STDINal STDOUTdel comando que se está ejecutando.

A modo de ejemplo, supongamos que desea crear un archivo tar de respaldo, pero no desea o no puede almacenarlo localmente. Echemos un vistazo a esta sintaxis:

$ tar -cf - /path/to/backup/dir | ssh remotehost "cat - > backupfile.tar"

Estamos creando un tarball y escribiéndolo en STDOUTmaterial normal. Como usamos ssh para ejecutar un comando remoto, STDIN se asigna al STDINarchivo of cat. Que luego redirigimos a un archivo.

Respuesta2

Una forma conveniente de canalizar datos entre hosts cuando no necesita preocuparse por la seguridad del cable es utilizar netcatambos extremos de la conexión.

Esto también te permite configurarlos de forma asincrónica:

En el "receptor" (en realidad, tendrás comunicación bidireccional, pero es más fácil pensarlo así), ejecuta:

nc -l -p 5000 > /path/to/backupfile.tar

Y en el "remitente", ejecute:

tar cf - /path/to/dir | nc 1.2.3.4 5000

Respuesta3

Una herramienta muy poderosa para crear conexiones uni y bidireccionales essocat. Para ver brevemente las posibilidades, mire los ejemplos en supágina de manual.

Reemplaza netcatcompletamente herramientas similares y tiene soporte para conexiones cifradas SSL. Para los principiantes, puede que no sea lo suficientemente sencillo, pero al menos es bueno saber que existe.

Respuesta4

Intente poner su clave pública ssh en otro host con solo un comando

ssh [email protected] 'cat >> .ssh/authorized_keys' < .ssh/id_rsa.pub

información relacionada