Пример использования expect

Skip to end of metadata
Go to start of metadata

Для управления оборудованием, требующим консольного интерактивного взаимодействия с человеком (ввода пароля, команд вручную) используется утилита expect. В этой статье приведен пример использования expect в скрипте event_inc.sh для управления оборудованием по telnet .

В файле event_inc.sh

...
"balance_positive")
if [ "$logged" = "1" -a "$nas_ip" != "0.0.0.0" ]; then
/usr/local/bin/expect /var/lib/event/expect_positive.sh $nas_ip $ip $ceil_in $ceil_out
...

В файле expect_positive.sh

 #!/usr/local/bin/expect
set nas_ip [lrange $argv 0 0]
set ip [lrange $argv 1 1]
set ceil_in [lrange $argv 2 2]
set ceil_out [lrange $argv 3 3]
spawn telnet $nas_ip
expect "Login:"
send "user+ct\r"
expect "Password:"
send "passwd\r"
expect "user@host"
send "/ip firewall address-list remove \[/ip firewall address-list find address=$ip\] \r"
expect "user@host"
send ........

Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.