Pexpect не синхронизируется с брандмауэром
Я пытаюсь получить данные из брандмауэра с помощью модуля Pexpect (точнее, pxssh). Процесс входа в систему окей, и проблема заключается именно в строке назначения "i":
if i==2: # password or passphrase
self.sendline(password)
# Up to here, everything is okay#
i = self.expect(["(?i)are you sure you want to continue connecting", original_prompt, "(?i)(?:password)|(?:passphrase for key)", "(?i)permission denied", "(?i)terminal type", TIMEOUT])
Это диалоговое окно брандмауэра, когда пользователь вошел в систему:
Пароль:
Последний вход в систему: Пн Сен 25 06:20:50 2017 от IPXXXX
Количество неудачных попыток с момента последнего успешного входа: 0
админ @DEVICE(активный)>
Я думаю, что проблема в том, что Pexpect не ожидает этих двух строк Last Login и Number of неудачных попыток, поэтому выполнение кода останавливается в строке, которую я сказал ранее.
Может ли кто-нибудь помочь мне?
----ОБНОВИТЬ----
Оболочка, которую использует брандмауэр:
admin@DEVICE(active)>
Код инициализации моего класса pexpect:
def __init__(self, host, user, password):
str = 'ssh '+user+'@'+host
self.user = user
self.child = pexpect.spawn ('ssh '+user+'@'+host)
self.child.expect ('Password:.*')
self.child.sendline (password)
self.child.expect (user+'.*>')
...
)
Заранее спасибо
Майк.