python - 蟒蛇 | 网美子
问题描述
我正在使用 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$
解决方案
我想通了,在这里发布解决方案是为了总体利益。解决方案是使用 send_command_timing 函数而不是 send_command。
推荐阅读
- ios - ios,tableView.setEditing 设置默认选择行
- python - 即使代码正常工作,python函数也返回None
- javascript - 从 ng-bootstrap 表中删除行
- batch-file - 我的批处理脚本在代码之后停止执行。命令
- python - 在 Python 中用对应的行值填充 NaN
- python - MongoDB如何获得评论+回复的数量
- python - 尝试创建自定义用户表单时在确认密码上出现 FieldError
- node.js - 图像文件的 AJAX 发布请求在 Express Route 处返回空
- node.js - 无法运行:npm start on react
- node.js - 安装 NVM(节点版本管理器)bash:第 5 行:npm:找不到命令时,Laravel Envoy 无法在 Ubuntu 上检测节点/npm