Назад | Перейти на главную страницу

Netcat для автоматизации администрирования SpeedTouch

Я понял, как включить / отключить беспроводное соединение с telnet, но хочу автоматизировать его.

Я читал, что telnet для этого не подходит, и вместо него следует использовать netcat.

Вот что у меня есть:

nc 192.168.1.254 23 << EOF
username
password
:wireless ifconfig state=$1
EOF

Но когда я запускаю это, я получаю что-то вроде:

????????Username : Administratorfietspomp:wireless i

При поиске были обнаружены параметры -t и -i, но ни один из них не помог.

Обновить

Ожидайте, что это:

#!/usr/bin/expect -f

set force_conservative 0  ;# set to 1 to force conservative mode even if
              ;# script wasn't run conservatively originally
if {$force_conservative} {
    set send_slow {1 .1}
    proc send {ignore arg} {
        sleep .1
        exp_send -s -- $arg
    }
}

if { [lindex $argv 0] == 1} {
    set status "enabled"
} else {
    set status "disabled"
}

set timeout -1
spawn telnet 192.168.1.254
match_max 100000
expect -exact "Username : "
send -- "username\r"
expect -exact "Password : "
send -- "password\r"
expect -exact "_{Administrator}=>"
send -- ":wireless ifconfig state=$status\r"
expect *
send -- "exit\r"
expect eof

Использовать autoexpect. Если у вас еще нет этой команды, установите пакет expect.

Тогда просто введите autoexpect и нажмите Enter. Все, что вы введете дальше, будет сохранено как script.exp. Когда вы закончите, нажмите Ctrl+d.

Наконец, вы можете запустить автоматизированную версию с expect ./script.exp. Конечно, вы можете переименовать script.exp и переместить его куда хотите.