1

只是python的初学者,需要一些专家建议。我在 Windows 机器上工作,安装了 python 2.7,尝试运行一个脚本,该脚本将连接到一个 cisco 呼叫管理器 CLI 并运行一些命令(例如 -admin:utils 创建报告硬件)。我附上了我正常连接的腻子槽的屏幕截图,但想自动执行此操作。对此的任何帮助将不胜感激。

我曾尝试使用 netmiko,但它显示以下错误 -在此处输入图像描述

>>> from netmiko import ConnectHandler
>>> cisco_881 = {'device_type': 'cisco_ios','ip': '10.10.201.11','username': 
'Admin','password': 'admin123'}
>>> net_connect = ConnectHandler(**cisco_881)

Traceback (most recent call last):
  File "<pyshell#18>", line 1, in <module>
    net_connect = ConnectHandler(**cisco_881)
  File "build\bdist.win32\egg\netmiko\ssh_dispatcher.py", line 122, in 
ConnectHandler
    return ConnectionClass(*args, **kwargs)
  File "build\bdist.win32\egg\netmiko\base_connection.py", line 146, in 
__init__
    self.session_preparation()
  File "build\bdist.win32\egg\netmiko\cisco\cisco_ios.py", line 11, in 
session_preparation
    self.set_base_prompt()
  File "build\bdist.win32\egg\netmiko\base_connection.py", line 634, in 
set_base_prompt
    raise ValueError("Router prompt not found: {0}".format(prompt))
ValueError: Router prompt not found: admin:
4

2 回答 2

0

CUCM 提示符是 admin:(以冒号 :) 结尾,因此您要修改 base_connection.py。

我在以下方面取得了一些成功:

在第 619 行附近,添加了粗体部分:

def set_base_prompt(self, pri_prompt_terminator='#', alt_prompt_terminator='>', cucm_prompt_terminator=':' , delay_factor=1):

在第 633 行附近,添加了粗体部分:

如果在(pri_prompt_terminator、alt_prompt_terminator、 cucm_prompt_terminator )中没有提示[-1] :

在访问 cisco_ios 类型的其他设备时,我没有对任何副作用进行广泛的测试,但上面给出了如何解决问题的要点。

于 2017-05-31T08:36:00.413 回答
0

您可以检查此代码:

from netmiko import ConnectHandler

RTR_150 = {
    "device_type": "cisco_ios",
    "host": "your_router_ip",
    "username": "test",
    "password": "test",
    "secret": "enable_password"}

with ConnectHandler(**RTR_150) as net_connect:
    config_commands = [ "show env",
                        "show version"]

    output = net_connect.send_config_set(config_commands)
    net_connect.disconnect()
    
    print(output)
于 2022-01-12T15:12:49.760 回答