当前位置: 首页 > news >正文

做外卖系统哪家网站做的好/外贸营销网站建设

做外卖系统哪家网站做的好,外贸营销网站建设,外贸公司怎么找客户的,滨海新区做网站电话背景介绍 由于历史原因公司遗留了很多老旧设备,这些设备有很多的是 H3C 的 58 系列,这些老设备有的不支持 Netconf,所以在做 SDN 的时候只能判断多种情况来适配这些老旧设备。 华为新设备和 H3C 的 68 系列都用 Netconf 下发配置&#xff0…

背景介绍

由于历史原因公司遗留了很多老旧设备,这些设备有很多的是 H3C 的 58 系列,这些老设备有的不支持 Netconf,所以在做 SDN 的时候只能判断多种情况来适配这些老旧设备。

华为新设备和 H3C 的 68 系列都用 Netconf 下发配置,如果是 H3C 的 58 系列或者其他老旧设备则用分为两种情况:设备配置用 SNMP设备配置用 SSH

# 匹配设备和型号对应的适配器
if agent_name == 'h3c':if model_name in ['S5800-60C-PWR', 'S5820X-26S', 'S5820-32F']:  # V5if model == 'read':device_params['ssh_password'] = device_snmpreturn SNMPDevice(**device_params)elif model == 'write':return SSHDevice(**device_params)else:raise ValueError('不支持该操作!')elif model_name in ['S6800-2C', 'S6800-4C', 'S10506X', 'S10506', 'S6800-54QF']:  # V7device_params['ssh_port'] = 830return NetconfDevice(**device_params)else:raise ValueError('不支持该设备!')
else:raise ValueError('不支持该厂商!')

出现问题

但是最近 58 系列设备的读功能(SNMP)出现了问题。

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-from easysnmp import snmp_walkdef main(oid):cursor = snmp_walk(oids=oid,hostname='xxx.xxx.xxx.xxx',community='xxx',version=2,use_sprint_value=True)print(cursor)if __name__ == '__main__':snmp_oid = 'IF-MIB::ifDescr'main(snmp_oid)

在这里插入图片描述

解决思路和解决方案

第一回合

报错的意思是找不到对应对象的 oid,但是本地 MIB库 是没问题的。

MacBook:~ zhangyi$ snmpwalk -v 2c -c xxx xxx.xxx.xxx.xxx IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: GigabitEthernet1/0/1
IF-MIB::ifDescr.2 = STRING: GigabitEthernet1/0/2
IF-MIB::ifDescr.3 = STRING: GigabitEthernet1/0/3
IF-MIB::ifDescr.4 = STRING: GigabitEthernet1/0/4
IF-MIB::ifDescr.5 = STRING: GigabitEthernet1/0/5
IF-MIB::ifDescr.6 = STRING: GigabitEthernet1/0/6
IF-MIB::ifDescr.7 = STRING: GigabitEthernet1/0/7
IF-MIB::ifDescr.8 = STRING: GigabitEthernet1/0/8
IF-MIB::ifDescr.9 = STRING: GigabitEthernet1/0/9
IF-MIB::ifDescr.10 = STRING: GigabitEthernet1/0/10
......

所以大概是因为 IF-MIB::ifDescr 这个字符串用不了了,当我把它换成具体的 oid 号时是不报错了,但是返回的 oid_index 也没有了值。

if __name__ == '__main__':snmp_oid = '1.3.6.1.2.1.2.2.1.2'main(snmp_oid)

在这里插入图片描述
所以这个问题不是 IF-MIB::ifDescr 导致的。

第二回合

接下来就是从 easysnmp 这个 Python 包中找问题了,easysnmp 底层是调用的是 net-snmp 这个系统级包,所以先查询下 net-snmp 在本机上的版本。

snmpget --version
NET-SNMP version: 5.6.2.1

当我打开官网看到 net-snmp 最新版本是 5.9.1 的时候就怀疑是不是旧版本导致的问题,所以决定先升级试试。
在这里插入图片描述

我本机系统是 Mac OS X,所以使用 brew 安装很方便。

brew install net-snmp

但是当我装好最新本版以后发现系统版本还是原来的 5.6.2.1

原因是我本机有多个版本,解决方法有两种:一种是删除旧版本,另一种是将新版本加到环境变量中。旧版本建议别删除万一系统中哪个应用用到呢,所以我们选择添加环境变量。

打开 ~/.bashrc 文件:

vi ~/.bashrc

添加到环境变量:

export PATH=/usr/local/Cellar/net-snmp/5.9.3/bin/:$PATH

重新打开终端这时就改成新版本了:

snmpget -V
NET-SNMP version: 5.9.3

但是结果很失望,还是不行!

第三回合

既然不是底层 net-snmp 的问题难道是 easysnmp 这个包的问题吗?

重新版本后发现确实比之前的版本高一点。

pip list | grep easysnmp
easysnmp  0.2.6

之前用的版本是 0.2.5,现在最新的是 0.2.6

但按道理说应该新版本会向下兼容的,为了打消疑虑决定将版本回退到 0.2.5
在这里插入图片描述
当我把版本降到 0.2.5 之后一切都正常了!

我:@#$^&%!$# ……*&%¥&@34%#!!!

总结

最后总结下经验教训吧,虽然最后查到的问题只是个版本的问题,但是为了解决这个问题前前后后浪费了大半天的时间也是郁闷。

这也说明在软件开发过程中,任何细节都不能放过,那些我们认为理所当然的事(版本应该向下兼容)也有可能出“黑天鹅”事件。所以在以后的开发中第三方包也应该在考虑范围之内,当时开发的包是什么版本就强制指定,即使在后续需要升级也要在版本改动后进行大量测试!

http://www.lbrq.cn/news/838549.html

相关文章:

  • 搜索网站的浏览器/谷歌seo和百度seo区别
  • 国外室内设计网站大全/建立网站要多少钱一年
  • 无锡做食品网站的公司简介/优化推广网站怎么做最好
  • 南岸网站建设哪家好/免费广告发布平台
  • 是做网站的怀孕后/百度商家平台登录
  • 四川做网站多少钱/站长源码
  • 网站建设推广入什么费用/广告接单平台app
  • 自己的主机做网站服务器/it培训班
  • 专门做企业名录的网站/谷歌seo怎么做
  • 衢州网站建设平台/seo的特点是什么
  • 天津做网站外包公司有哪些/web网址
  • 本地东莞网站建设/官方百度下载安装
  • hbuider 做网站/seminar什么意思中文
  • b2b电子商务网站的收益模式是什么?/爱站长尾词挖掘工具
  • 大连做网站 智域/站长工具app官方下载
  • 胶州企业网站建设/百度地图客服人工电话
  • 网页开发环境一般写什么/东莞seo外包平台
  • 河北省建设网站锁安装什么驱动/指数查询
  • 做药的常用网站/网站建设报价方案
  • 邯山区建设局网站/网络科技公司
  • 网站被挂黑链/百度指数官网查询
  • 南宁最高端网站建设/晋中网站seo
  • 品牌策划公司名字大全/石家庄seo按天扣费
  • 厦门哪些做鲜花的网站/抖音关键词查询工具
  • 徐州免费网站建站模板/广州百度网站快速排名
  • vps网站如何绑定多个域名/建站开发
  • 网站建设的岗位要求/雅虎搜索引擎中文版
  • 宁波专业网站推广平台咨询/培训机构需要什么资质
  • 铆钉机 东莞网站建设/优化关键词步骤
  • 人大 网站建设 方案/百度付费问答平台
  • 【Servo】伺服驱动器扫频功能方案文档
  • 如何解决WordPress数据库表损坏导致的错误
  • 个人笔记(linux/sort与uniq命令)
  • XSS-labs 1-8关
  • 【Linux手册】重定向是如何实现的?Linux下为什么一切皆文件?
  • sglang笔记1: 后端详细阅读版