
stdout
en un servidor CentOS debe canalizarse a stdin
otro 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 ssh
para 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 ssh
para ejecutar un comando arbitrario en un sistema remoto, entonces ssh se asignará STDIN
al STDOUT
del 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 STDOUT
material normal. Como usamos ssh para ejecutar un comando remoto, STDIN se asigna al STDIN
archivo 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 netcat
ambos 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 netcat
completamente 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