Necesito escribir un script para monitorear la interfaz wlan0 de mi máquina remota. Puedo hacer esto ejecutando iwconfig wlan0
repetidamente 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