【发布时间】:2018-10-05 12:47:01
【问题描述】:
我正在尝试登录思科交换机并在那里做一些事情(例如配置一个端口)。我显然不能在 cisco 设备上使用exec_command(cmd1 \n cmd2 \n)...所以我使用通道来发送我的命令,如下所示:
channel = ssh.invoke_shell()
channel.send("show arp\n")
while not channel.recv_ready():
time.sleep(0.5)
out = channel.recv(9999)
我不喜欢time.sleep(0.5) 并希望动态等待命令执行,因为有时命令需要的时间甚至超过 0.5 秒,这会大大减慢一切。比如exec_command(cmd),我有exit_status = channel.recv_exit_status()。
有没有办法解决这个问题?
编辑:
我可以以某种方式收听频道并等待输出像
CISCOSWITCH#
以便我知道我已准备好发送更多命令或exit?
【问题讨论】:
-
为什么不使用多个
exec_command调用? -
因为这会关闭通道并且当我的意图是配置端口时,我必须在同一个会话中发送多个命令。 (我认为这就是它的工作原理)
标签: python-2.7 ssh paramiko cisco