Ejecute el comando en una máquina remota usando telnet en una línea

Ejecute el comando en una máquina remota usando telnet en una línea

Necesito escribir un script para monitorear la interfaz wlan0 de mi máquina remota. Puedo hacer esto ejecutando iwconfig wlan0repetidamente en una máquina remota. Pero, ¿cómo iniciar sesión en esa máquina y ejecutar este comando a través de telnet? Puedo hacer esto a través de ssh, pero ssh tarda en iniciar sesión y se bloquea si la conexión a la máquina remota se interrumpe en medio de la ejecución.

Respuesta1

En lugar de invocar repetidamente el comando ssh, puede ejecutar ssh para ejecutar repetidamente el comando en el sistema remoto y luego analizar y usar la salida localmente. Entonces no tendrías que seguir ejecutando la conexión ssh y aguantando el retraso inicial.

Por ejemplo:

ssh remotehost "while [ "1" ] ; do iwconfig wlan0 ; sleep 1 ; done"

O puede usar netcat para enviar la salida del sistema remoto a su máquina. Por ejemplo, ejecute esto en la máquina local:

nc -l 9999

Luego en la máquina remota:

while [ "1" ] ; do iwconfig wlan0 ; sleep 1 | nc localmachine 9999

Reemplace localmachine aquí con el host o ip de la máquina que realizará el "monitoreo".

Incluso podría canalizar la salida de nc leyendo ese puerto a otro comando.

Más cerca de su pregunta real, podría hacer esto en el sistema remoto para que actúe como un "servidor" telnet:

while [ "1" ] ; do iwconfig wlan0 | nc -l 9999 ; done

Entonces podrías hacer esto para obtener el resultado:

telnet remotehost 9999

información relacionada