Я понял, как включить / отключить беспроводное соединение с 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 и переместить его куда хотите.