Preciso escrever um script para monitorar a interface wlan0 da minha máquina remota. Posso fazer isso executando iwconfig wlan0
repetidamente em uma máquina remota. Mas como fazer login nessa máquina e executar este comando via telnet. Posso fazer isso via ssh, mas o ssh demora para fazer login e trava se a conexão com a máquina remota cair no meio da execução.
Responder1
Em vez de invocar repetidamente o comando ssh, você pode executar ssh para executar repetidamente o comando no sistema remoto e então analisar e usar a saída localmente. Então você não teria que continuar executando a conexão ssh e aguentando o atraso inicial.
Por exemplo:
ssh remotehost "while [ "1" ] ; do iwconfig wlan0 ; sleep 1 ; done"
Ou você pode usar o netcat para enviar a saída do sistema remoto de volta para sua máquina. Por exemplo, execute isto na máquina local:
nc -l 9999
Então na máquina remota:
while [ "1" ] ; do iwconfig wlan0 ; sleep 1 | nc localmachine 9999
Substitua aqui localmachine pelo host ou ip da máquina que estará fazendo o "monitoramento".
Você pode até canalizar a saída do nc lendo essa porta para outro comando.
Mais próximo da sua pergunta real, você poderia fazer isso no sistema remoto para atuar como um "servidor" telnet:
while [ "1" ] ; do iwconfig wlan0 | nc -l 9999 ; done
Então você poderia fazer isso para obter a saída:
telnet remotehost 9999