Перейти к содержимому
Калькуляторы

Telnet--автологин помогите со скриптиком

нарыл где-то в нете скриптик

#!/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]#

 

И нехочет.

поскажите куда копать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дык expect в какой директории установлен?

whereis expect

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Дык expect в какой директории установлен?
whereis expect

[root@localhost home]# whereis expect

expect:

[root@localhost home]#

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо поставить вот это

perl-Expect-1.21-3mdv2009.0.noarch - это модуль для Perl.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо поставить вот это

perl-Expect-1.21-3mdv2009.0.noarch - это модуль для Perl.

Спасибо!!! попробую и затем отпишусь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Надо поставить вот это

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

причем повторяет первую букву логина. как бы её потереть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рабочий скрипт

#!/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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рабочий скрипт

#!/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]#

 

 

кто-нить с этим сталкивался?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

под 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

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

нарыл где-то в нете скриптик

#!/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

Изменено пользователем Deac

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.