因此,我试图自动将一些配置推送到我的交换机,但这些命令通常会在交换机中返回 (y/n) 提示。结果,send_command 函数在查找提示时将不起作用,因此我正在使用运行良好的 write_channel() 函数。但是,由于某种原因,在我发送命令后,read_channel 和 clear_buffer() 函数都不会打印超过 1 或 2 行的输出。
我尝试过的事情:
将 read_channel/buffer 置于慢循环中。
read_until_prompt/pattern
send_command 与 cmd_verify=False 和 auto_find_prompt=False
打印 read_channel
等等。. .
send_command 可以显示输出没有问题,它的源代码使用 read_channel() 来推送输出,所以我不确定还有什么可以尝试的。
目标:我需要从 cisco 交换机中的命令获取输出(在 001:00 重新加载),这样我就可以告诉程序如何对提示做出反应(如果有提示)。
这是我为解决主项目中的问题而编写的一些基本代码:
from netmiko import ConnectHandler
import time
Network_Device = {
"ip": "10.251.11.38",
"username": "user",
"password": "pass",
"secret": "secretpass",
"device_type": "cisco_ios",
"fast_cli": False
}
#Connect = ConnectHandler(**Network_Device)
with ConnectHandler(**Network_Device) as ssh:
ssh.enable()
while True:
x = input(ssh.find_prompt())
if x == '':
pass
elif x == 'exit' or x == 'Exit':
ssh.disconnect()
else:
ssh.write_channel(x) # Writes command to cli
#Problem lies on the two functions below: Neither will print out a show command fully.
ssh.clear_buffer(backoff=True)
ssh.read_channel()