URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 57095
[ Назад ]

Исходное сообщение
"Раздел полезных советов: expect для автоматизации операций т..."

Отправлено auto_tips , 21-Июл-09 16:49 
#!/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


Содержание

Сообщения в этом обсуждении
"expect для автоматизации операций требующих ручного ввода"
Отправлено shadow_alone , 21-Июл-09 16:49 
вот сделал очень удобный скриптик для работы со своими рутерами и свитчами:
#!/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


"expect для автоматизации операций требующих ручного ввода"
Отправлено vaden , 10-Ноя-09 19:14 
а как перенаправить вывод "sh run" в файл?

"expect для автоматизации операций требующих ручного ввода"
Отправлено munsera , 17-Фев-11 15:40 
У меня после автоматического ввода пароля коннект отваливается. В чем проблеима?

"expect для автоматизации операций требующих ручного ввода"
Отправлено Shaker , 06-Сен-11 11:41 
Добавьте в конец скрипта interact.