def bras_command(channel, command, max_wait=5, buffer_size=9999):
channel.send(command + '\n')
output = b''
total_wait = 0
# Wait up to `max_wait` seconds for data to appear
while not channel.recv_ready() and total_wait < max_wait:
sleep(1)
total_wait += 1
if not channel.recv_ready():
print("
return ''
# Once output starts arriving, keep reading until delay hits
sleep(1) # let full command execute
last_chunk_time = time()
while True:
if channel.recv_ready():
chunk = channel.recv(buffer_size)
output += chunk
last_chunk_time = time()
else:
if time() - last_chunk_time > 1.5: # 1.5s of silence = end
break
sleep(0.2)
decoded = output.decode("utf-8", errors="ignore")
print(decoded)
return decoded
< /code>
Я пытаюсь превышать команду
command = show interfaces описания | Сопоставьте 13-3-13-90
, но когда функция превышает, она не дает вывода, после многих испытаний я обнаружил, что это потому, что когда человек делает это, это должно быть похоже на наводнение интерфейсов Desc , а при нажатии места он будет ждать некоторое время, тогда появляются потомки слова, и. , который будет ждать секунду или около того, а затем нажимать на m , следовательно, пространство и подождите более короткое время, чем Desced, следовательно, появится слово, а затем пробует строку 13-3-13-90 и нажимать Enter, чтобы превышать
Я не мог моделировать ее всеми средствами. Кто-нибудь может мне помочь?@CMG03-ATO>
show interfaces descriptions | match 13-3-13-90
< /code>
Вот что следует ожидать при исключении < /p>
@CMG03-ATO> show interfaces descriptions | match 13-3-13-90
ae1114.3182 up up 13-3-13-90-ZHRPC90-ZHRP-ATO-T3182-L1798-P33
ae1114.3186 up up 13-3-13-900-ZHRPC900-ZHRP-ATO-T3186-L1799-P33
Подробнее здесь: https://stackoverflow.com/questions/797 ... er-command