2016-01-04 2 views
0

Мне нужен автоматический сценарий telnet между двумя встроенными целями Linux с использованием BusyBox v1.22.1 на клиенте и BusyBox v1.10.3 на хосте. Примечание: Expect в этой системе недоступен. Я пробовал рекомендации here без успеха. Например, этоКак автоматизировать BusyBox telnet

host=1.1.1.2 
port=23 # note - port is not required 
pass=xxxx # note - pass is not required 
cmd1=24 

(echo open ${host} ${port} 
    sleep 1 
    echo -e "\r" 
    sleep 1 
    echo ${pass} 
    sleep 1 
    echo -e "\r" 
    sleep 1 
    echo ${cmd1} 
    sleep 1 
    echo -e "\r" 
    sleep 1 
    echo exit) | telnet 

возвращает это

Usage: telnet [-a] [-l USER] HOST [PORT] 
Connect to telnet server 
     -a  Automatic login with $USER variable 
     -l USER Automatic login as USER 

Так что я пробовал различные комбинации «Использование» (выше) без успеха (он всегда просит введенного вручную «входа»).

Является ли telnet автоматическим логином сломанным на BusyBox v1.22.1 или я просто пропустил что-то простое?

ответ

1

В конце концов он получил его для работы с использованием оригинального примера, на который я указал. Запутанная часть заключалась в том, что сеанс telnet вышел без команды выхода в финале «)». Кроме того, ни одна из команд во время сеанса telnet-сеанса, поэтому спящий режим для каждой команды должен быть достаточно длинным. В этом случае «пользователь» является root и пароль отсутствует. Возможно, мне нужно будет вставить несколько echo -e "\r", но вот рабочая команда, которая будет включена в скрипт:

(echo -e "\r" 
    sleep 1 
    echo root 
    sleep 2 
    echo ${cmd1} 
    sleep 65 
    echo ${cmd2} 
    sleep 2 
    echo ${cmd3} 
    sleep 52) | telnet $host 

 Смежные вопросы

  • Нет связанных вопросов^_^