首页 > 解决方案 > 蟒蛇 | 网美子

问题描述

我正在使用 Netmiko 在 Python 中编写一个脚本来自动升级 450 多个路由器。它们是 881/887、1921 和 2901 的组合。

我正在使用 Netmiko,并且已经研究了如何确定模型并复制适当的 IOS 版本。我遇到的问题是重新加载路由器。我正在尝试使用该send_command_expect功能,但无法使其正常工作。

这是我试图实现它的方法。任何帮助表示赞赏。

import getpass
import time
from netmiko import ConnectHandler, file_transfer

host = "10.0.0.1"
u = "cisco"
p = "cisco"
source_file = "c800-universalk9-mz.SPA.155-3.M5.bin"

router = {
    'device_type': "cisco_ios",
    'ip': host,
    'username': u,
    'password': p,
}

try:
    ssh_conn = ConnectHandler(**router)
    print ("Connection successful\n")
except:
    print ("Login failure\n")
    sys.exit()

output = ssh_conn.send_command_expect('write mem')
output += ssh_conn.send_command('reload')
output += ssh_conn.send_command('\n')enter code here

以下是错误消息:

192-168-1-6:CiscoUpgrade sudarshanv$ python3 test.py
Connection successful

Traceback (most recent call last):
  File "test.py", line 25, in <module>
    output += ssh_conn.send_command('reload')
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/netmiko/base_connection.py", line 1112, in send_command
    search_pattern))
OSError: Search pattern never detected in send_command_expect: HomeRTR\#
192-168-1-6:CiscoUpgrade sudarshanv$

标签: pythonpython-3.xnetmiko

解决方案


我想通了,在这里发布解决方案是为了总体利益。解决方案是使用 send_command_timing 函数而不是 send_command。


推荐阅读