Для управления оборудованием, требующим консольного интерактивного взаимодействия с человеком (ввода пароля, команд вручную) используется утилита 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 ........