Login_sbl Опубликовано 1 июня, 2009 · Жалоба нарыл где-то в нете скриптик #!/usr/bin/expect spawn telnet 192.168.100.100 expect ogin {send luser\r} expect assword {send TopSecret\r} send "show vlan\r" send "exit\r" expect eof -------------------------------------------------- Вот что пишет при запуске [root@localhost home]# ./test_exp bash: ./test_exp: /usr/bin/expect: bad interpreter: Нет такого файла или каталога [root@localhost home]# Проверил установлеy ли exepect [root@localhost login]# urpmi expect Пакет perl-Expect-1.21-3mdv2009.0.noarch уже установлен [root@localhost login]# И нехочет. поскажите куда копать? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fox_m Опубликовано 1 июня, 2009 · Жалоба Дык expect в какой директории установлен? whereis expect Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Login_sbl Опубликовано 1 июня, 2009 · Жалоба Дык expect в какой директории установлен?whereis expect [root@localhost home]# whereis expect expect: [root@localhost home]# Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Belize Опубликовано 1 июня, 2009 · Жалоба Надо поставить вот это perl-Expect-1.21-3mdv2009.0.noarch - это модуль для Perl. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Login_sbl Опубликовано 1 июня, 2009 · Жалоба Надо поставить вот этоperl-Expect-1.21-3mdv2009.0.noarch - это модуль для Perl. Спасибо!!! попробую и затем отпишусь. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Login_sbl Опубликовано 1 июня, 2009 · Жалоба Надо поставить вот этоperl-Expect-1.21-3mdv2009.0.noarch - это модуль для Perl. Спасибо!!! попробую и затем отпишусь. [root@login home]# cat ./test_exp #!/usr/bin/expect spawn telnet 192.168.100.41 expect sername: {send login\r} sleep 3 expect assword: {send pass\r} sleep 3 send "show vlan" send "exit\r" expect eof[root@login home]# Теперь следующая проблемка: когда система вводит логин, то почему он проскакивает лишние символ в пароль. Непонятно откуда. и пароль естественно падает неправильный. кто знает как это обойти? коннектимся к 3526 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Login_sbl Опубликовано 1 июня, 2009 · Жалоба причем повторяет первую букву логина. как бы её потереть? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
deep_admin Опубликовано 2 июня, 2009 · Жалоба Рабочий скрипт #!/usr/bin/expect -f set timeout -1 spawn telnet 192.168.1.100 match_max 100000 expect -exact "username:" send -- "admin\r" expect -exact "password:" send -- "mypassword\r" expect -exact "\r \r\r \rDES-3526:4#" send -- "dis cli\r" expect "*Success*" send -- "sh vlan\r" expect "*Total*" send -- "logout\r" expect eof exit Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Login_sbl Опубликовано 2 июня, 2009 · Жалоба Рабочий скрипт #!/usr/bin/expect -f set timeout -1 spawn telnet 192.168.1.100 match_max 100000 expect -exact "username:" send -- "admin\r" expect -exact "password:" send -- "mypassword\r" expect -exact "\r \r\r \rDES-3526:4#" send -- "dis cli\r" expect "*Success*" send -- "sh vlan\r" expect "*Total*" send -- "logout\r" expect eof exit Эх...всеравно дописывается в логине последняя буква. ТОесть пишет admin в логине, а на пассворд переносит еще букву "а" вот как я я проверил. [root@login home]# cat test_work #!/usr/bin/expect -f set timeout -1 spawn telnet 192.168.100.41 match_max 100000 expect -exact "Username:" send -- "login" --- здесь убрал \r expect -exact "Password:" send -- "test\r" expect -exact "\r \r\r #\rDES-3526:4#" #send -- "dis cli\r" #expect "*Success*" send -- "sh vlan\r" #expect "*Total*" send -- "logout\r" expect eof exit[root@login home]# а вот что на выходе: Username:loginl #Как видим дописывает букву l [1]+ Stopped ./test_work [root@login home]# кто-нить с этим сталкивался? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
fedoseevka Опубликовано 2 июня, 2009 · Жалоба под nixами х.з как а в виндовсе пользуюсь SecureCRT где для какждой сессии можно сделать свой профиль в том числе и автологин.В папке scripts лежан vbs-файлы где я меняю вместо mylogin и password свои значения.вот их примеры может вам поможет #$language = "VBScript" #$interface = "1.0" Sub main ' turn on synchronous mode so we don't miss any data crt.Screen.Synchronous = True ' Wait for a string that looks like "login: " or "Login: " ' Occasionally, a host needs to be kicked to display a ' login prompt. If (Not crt.Screen.WaitForString("ogin: ", 5)) Then crt.Screen.Send vbCr crt.Screen.WaitForString "ogin: " End If ' Send your username followed by a carriage return crt.Screen.Send "mylogin" & VbCr ' Wait for a tring that looks like "password: " or "Password: " crt.Screen.WaitForString "assword:" ' Send your password followed by a carriage return crt.Screen.Send "mypassword" & VbCr ' turn off synchronous mode for normal input processing crt.Screen.Synchronous = False End Sub #$language = "VBScript" #$interface = "1.0" Sub main Dim passwd ' turn on synchronous mode so we don't miss any data crt.Screen.Synchronous = True ' Wait for a string that looks like "login: " or "Login: " crt.Screen.WaitForString "ogin: " ' Send your username followed by a carriage return crt.Screen.Send "mylogin" & VbCr ' Wait for a tring that looks like "password: " or "Password: " crt.Screen.WaitForString "assword:" ' prompt the user for a password passwd = crt.Dialog.Prompt("Please enter your password:", "Enter Password", "", True) ' send the password and a carriage return crt.Screen.Send passwd & VbCr ' turn off synchronous mode to restore normal input processing crt.Screen.Synchronous = False End Sub #$language = "VBScript" #$interface = "1.0" Sub main ' turn on synchronous mode so we don't miss any data crt.Screen.Synchronous = True ' Wait for a string that looks like "login: " or "Login: " crt.Screen.WaitForString "ogin: " ' Send your username followed by a carriage return crt.Screen.Send "mylogin" & VbCr ' Wait for a tring that looks like "password: " or "Password: " crt.Screen.WaitForString "assword:" ' Send your password followed by a carriage return crt.Screen.Send "mypassword" & VbCr ' turn off synchronous mode to restore normal input processing crt.Screen.Synchronous = False End Sub Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Deac Опубликовано 9 июня, 2009 (изменено) · Жалоба нарыл где-то в нете скриптик#!/usr/bin/expect spawn telnet 192.168.100.100 expect ogin {send luser\r} expect assword {send TopSecret\r} send "show vlan\r" send "exit\r" expect eof -------------------------------------------------- Вот что пишет при запуске [root@localhost home]# ./test_exp bash: ./test_exp: /usr/bin/expect: bad interpreter: Нет такого файла или каталога [root@localhost home]# Проверил установлеy ли exepect [root@localhost login]# urpmi expect Пакет perl-Expect-1.21-3mdv2009.0.noarch уже установлен [root@localhost login]# И нехочет. поскажите куда копать? Юзай p5-Net-Telnet или p5-Net-Telnet-Cisco соответственно. cat MyTelnet.pl #!/usr/bin/perl $ok = new Net::Telnet ( Host => $ARGV[0], Port => $ARGV[1]t, Timeout => 10 ); # Здесь нужно попробовать mode 0 и mode 1 $ok->binmode(1); # Здесь ждём приглашения к вводу логина $ok->waitfor('/Username:.*$/i'); $ok->print($ARGV[2]); # Здесь ждём приглашения к вводу пароля $ok->waitfor('/Password:.*$/i'); $ok->print($ARGV[3]); # Здесь делаем всё что нам от консоли требуется $ok->waitfor('/\[].*$/i'); $ok->print('blablabla'); $ok->print('albalbalb'); # Даём команду на выход, здесь exit $ok->print('exit'); # EOF by Deac Запускаем ./MyTelnet.pl Host Port Login Passwwd Изменено 9 июня, 2009 пользователем Deac Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...