Мне нужно написать скрипт для мониторинга интерфейса 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