Я не могу получить данные журнала с pexpect в среде multi ssh - PullRequest
1 голос
/ 14 мая 2019

У меня есть переключатель, и я могу в нем показать конфигурацию с соответствием:

admin@sele> show configuration | display set | match " ge-0/0/1 "   
set interfaces ge-0/0/1 unit 0 family ethernet-switching interface-mode access
set interfaces ge-0/0/1 unit 0 family ethernet-switching vlan members vlan106
set interfaces ge-0/0/1 unit 0 family ethernet-switching filter input Interface-Limit-100m
set class-of-service interfaces ge-0/0/1 shaping-rate 100m

{master:0}
admin@sele> 

данные конфигурации:

set interfaces ge-0/0/1 unit 0 family ethernet-switching interface-mode access
set interfaces ge-0/0/1 unit 0 family ethernet-switching vlan members vlan106
set interfaces ge-0/0/1 unit 0 family ethernet-switching filter input Interface-Limit-100m
set class-of-service interfaces ge-0/0/1 shaping-rate 100m

теперь я хочу использовать pexpect для получения данных конфигурации

import pexpect

child = pexpect.spawn('ssh root@14.54.24.9')
child.expect('Password:')
child.sendline('password')
child.expect('#')

child.sendline('ssh admin@10.10.10.1')
child.expect('Password:')
child.sendline('my juniper switch password')
child.expect('>')

print('ldl1: ' ,child.before)
child.sendline('show configuration | display set | match " ge-0/0/1 "')
print('ldl2: ' ,child.before)
print('ldl2: ' ,child.after)
print('ldl2: ' ,child.buffer)

журнал:

ldl1:  b'\r\n--- JUNOS 14.1X53-D47.3 built 2018-05-11 01:30:52 UTC\r\n{master:0}\r\nadmin@sele'
ldl2:  b'\r\n--- JUNOS 14.1X53-D47.3 built 2018-05-11 01:30:52 UTC\r\n{master:0}\r\nadmin@sele'
ldl2:  b'>'
ldl2:  b' '

там я не могу получить данные конфигурации.


EDIT-01

Я использую время сна 5 секунд, тогда это все еще проблема, нет журналов, полученных до или после.

import time
...
child.sendline('show configuration | display set | match " ge-0/0/1 "')
time.sleep(5)
print('ldl2: ' ,child.before)
print('ldl2: ' ,child.after)
print('ldl2: ' ,child.buffer)
...