Выполнить команду на удаленной машине с помощью telnet в одну строку

Выполнить команду на удаленной машине с помощью telnet в одну строку

Мне нужно написать скрипт для мониторинга интерфейса wlan0 моей удаленной машины. Я могу сделать это, выполнив его iwconfig wlan0повторно на удаленной машине. Но как войти на эту машину и выполнить эту команду через telnet? Я могу сделать это через ssh, но ssh требует времени для входа и зависает, если соединение с удаленной машиной обрывается в середине выполнения.

решение1

Вместо многократного вызова команды ssh, вы можете запустить ssh для многократного выполнения команды на удаленной системе, а затем проанализировать и использовать вывод локально. Тогда вам не придется продолжать запускать соединение ssh и мириться с первоначальной задержкой.

Например:

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

Или вы можете использовать netcat для отправки вывода на удаленной системе обратно на вашу машину. Например, запустите это на локальной машине:

nc -l 9999

Затем на удаленной машине:

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

Замените localmachine на хост или IP-адрес машины, которая будет выполнять «мониторинг».

Вы даже можете передать вывод nc, считывающий этот порт, в другую команду.

Ближе к вашему вопросу, вы можете сделать это на удаленной системе, чтобы она действовала как «сервер» Telnet:

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

Тогда вы можете сделать это, чтобы получить выход:

telnet remotehost 9999

Связанный контент