#!/usr/bin/expect -f # Забор файла по FTP
spawn ftp ftp.test.ru
expect "Name*:" { send "ftp\n"}
expect "Password:" { send "ftp@\n"}
expect "ftp>" {send "bin\n"}
expect "ftp>" {send "prompt no\n"}
expect "ftp>" {send "cd /pub/store\n"}
expect "ftp>" {send "get arc.tar.gz\n"}
expect "ftp>" {send "exit\n"}#!/usr/bin/expect -f # Выполнение операции используя telnet
spawn telnet cisco.test.ru
expect "login:" { send "adm\n"}
expect "Password:" { send "пароль\n"}
expect "#" {send "show users\n"}
expect "#" {send "exit\n"}
URL:
Обсуждается: https://www.opennet.ru/tips/info/583.shtml
вот сделал очень удобный скриптик для работы со своими рутерами и свитчами:
#!/usr/bin/expect -f
set mycommand [lrange $argv 1 $argc]
spawn /usr/bin/telnet [lindex $argv 0]
expect "Username:" { send "логин\n"}
expect "Password:" { send "пароль\n"}
expect ">" {send "en\n"}
expect "Password:" { send "пароль_на_enable\n"}
expect "#" {send "terminal length 0\n"}
expect "#" {send "$mycommand \n"}
expect "az#" {send "terminal no length 0\n"}
expect "#" {send "exit\n"}запускаем
скрипт куда_коннектимся командавозникает лишь одна проблема, например при выводе sh run
из-за того что скрипт ждет "#", он обрывает вывод, если есть строки с "#". Вылечил просто - жду вывод не "#" а ".az#" - девайсы имеют имя с окончанием на .az
а как перенаправить вывод "sh run" в файл?
У меня после автоматического ввода пароля коннект отваливается. В чем проблеима?
Добавьте в конец скрипта interact.