2

我正在尝试使用 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")
4

1 回答 1

0

这里显而易见的似乎是在交换机上提供“禁用横幅”配置设置 - 除非您出于法律原因将其设置在那里。

于 2021-09-29T11:29:10.627 回答