Я не могу заставить следующий скрипт работать даже в том случае, если логин успешно завершен или когда вход в систему не увенчался успехом.Telnet для нескольких маршрутизаторов cisco с использованием сценария ожидания Python
Какие регулярные выражения можно использовать для принятия всех приведенных ниже подсказок?
router1>; router3>; router4#
Как я могу использовать регулярное выражение, где я могу ожидать весь текст, прежде чем «глючить» и после того, как «провал» строки, а затем в конце концов я получу > > > "разрешение отказано
Current failed Login: ########
User Access Verification
Username: asdsad
Password:
% Authentication failed
Current Successful Login ###########
[[email protected] testuserpass]# telnet 192.168.1.31
Trying 192.168.1.31...
Connected to 192.168.1.31.
Escape character is '^]'.
User Access Verification
Username: admin
Password:
testname>
testname>
testname>
testname>
testname>
My Script Ниже ################
Вопрос о Cisco маршрутизаторы телнет входа в систему регулярных выражений
#! /usr/bin/python
import pexpect
import getpass
HOST = "192.168.1.31"
user = raw_input("Enter your remote account: ")
password = getpass.getpass()
child = pexpect.spawn ('telnet '+HOST)
child.expect ('Username: ')
child.sendline (user)
child.expect ('Password: ')
child.sendline (password)
//// ######I just can't get below part to work.
i = child.expect (['*Authentication*', 'Terminal type', '[#\$>] '])
if i==0:
print('Permission denied on host. Can\'t login')
child.kill(0)
print child.readline()
elif i==1:
print('Login OK... need to send terminal type.')
child.sendline('vt100')
child.expect('[#\$] ')
print child.readline()
elif i==2:
print('Login OK.')
print('Shell command prompt', child.after)
print child.readline()