【发布时间】:2017-02-07 21:35:43
【问题描述】:
我正在尝试使用 python 和 netmiko 从 Avaya ERS 5000 自动检索交换机信息(配置、mac-address-table、lldp 信息)。
打开与交换机的 SSH 会话时,Avaya 要求您输入 Ctrl-Y 进入文本菜单,然后输入另一个键 (c) 进入 CLI。
我尝试了下面的代码,这会产生超时异常。 当我剥离 try/except 时,我看到以下输出。
从在不同位置插入 print() 语句可以看出,会话已建立,然后超时。
我是否可以从 netmiko 异常中提取更多信息来说明此过程出错的地方?
我先承认编码,我是最近的熟人,我可能会错过明显的东西。
-------------------------------------------------------------------------------
Connecting to switch
Traceback (most recent call last):
File "./netmiko-test4.py", line 24, in <module>
ssh_connection = netmiko.ConnectHandler(**avaya5000_ers)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netmiko/ssh_dispatcher.py", line 100, in ConnectHandler
return ConnectionClass(*args, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netmiko/base_connection.py", line 144, in __init__
self.establish_connection()
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/netmiko/base_connection.py", line 525, in establish_connection
raise NetMikoTimeoutException("Timed out waiting for data")
netmiko.ssh_exception.NetMikoTimeoutException: Timed out waiting for data
>
from __future__ import unicode_literals
import netmiko
# Avaya presents Enter Ctrl-Y to begin.
CTRL_Y = '\x19'
avaya5000_ers = {
'device_type': 'avaya_ers',
'ip': 'a.b.c.d', #ip obscured for posting
'username': 'user1',
'password': 'password',
}
try:
ssh_connection = netmiko.ConnectHandler(**avaya5000_ers)
ssh_connection.write_channel(CTRL_Y)
ssh_connection.send_command('c')
print(ssh_connection.send_command('show clock')) #a test command
ssh_connection.disconnect()
except netmiko.ssh_exception.NetMikoTimeoutException:
print("timed out")
【问题讨论】:
-
您似乎无法与 Avaya 交换机建立初始连接。您可以尝试从同一主机通过 ssh 客户端连接吗?
-
SSH 在同一主机和其他主机上工作。
标签: python automation network-programming avaya