文章目录

  • 前言
  • 一、netmiko 4.1.0版本安装
  • 二、自动化备份代码讲解
    • 1.目录结构
    • 2.完整代码详解
    • 3.netmiko支持设备
  • 三、参考资料
    • 1.Python官方netmiko库
    • 2.Github官方netmiko库
  • 三、exe脚本下载

前言

余生平,怎一个懒字了得。
小白Python自动化运维随笔(懒人专属)。
Python版本3.9.12

一、netmiko 4.1.0版本安装

进入CMD,输入下记命令进行安装

pip install  netmiko==4.1.0

查看pip安装的组件列表命令

pip list

二、自动化备份代码讲解

1.目录结构

net_config_backup:log备份存放文件夹
devlist.txt:SSH登录设备信息

PE,hp_comware,1.1.1.1,admin,password
PE,huawei,1.1.1.1,admin,password
PE,cisco_ios,1.1.1.1,admin,password

hp_comvare 代表H3C设备
huawei 代表华为设备
cisco_ios 代表思科设备

ssh.py:python代码

2.完整代码详解

from netmiko import ConnectHandler
import time
import os
import shutil
#python 3.9.12
#netmiko 4.1.0#定义全局变量
Today = time.strftime( "%Y-%m-%d", time.localtime())    #获取本地时间
OsPath = os.path.abspath(".")
OsPath = OsPath.replace('\\', '/')  #获取上级目录
FilePath = OsPath
BackPath = OsPath + '/net_config_backup/'
Delimiter = '--------------------------------------------------------------------------'
#华三 华为命令列表
H3cCommandList = ['dis version','dis current-configuration','dis device','dis interface brief','dis vlan all','dis clock','dis cpu','dis memory','dis power','dis fan','dis temperature all','dis logbuffer','dis ospf brief','dis ospf peer','dis ospf lsdb','dis bgp peer vpnv4','dis bgp routing-table vpnv4', 'dis ip routing-table all-routes']#浪潮 思科命令列表
InspurCommandList = ['show version','show run','show ip interface brief','show interface status','show vlan all','show clock','show clock utc','show cpu traffic-limit','show cpu traffic-statistics receive','show cpu traffic-statistics transmit','show memory','show power-info','show logging buffer ']def make_dir(path_name):    #创建文件夹if os.path.exists(path_name):shutil.rmtree(path_name)  #删除已有文件夹os.mkdir(path_name)def txt_write(logname,output,command):  #配置写入文档中time.sleep(1)wr = open(logname, 'a', encoding='utf-8')wr.write(command + '\n')wr.write(output)wr.write('\n' + Delimiter + '\n')wr.closedef ssh_session(devlist): ##定义备份函数list= line.split( ",")hostname = str( list[0])devtype = list[1]ip = list[2]name = list[3]devpasswd = list[4]if devtype == 'hp_comware' or devtype == 'huawei':     #H3C 华为设备net_connect = ConnectHandler(device_type=devtype,ip=ip,username=name,password=devpasswd,)for command in H3cCommandList:output = net_connect.send_command(command)logname =BackPath + Today + "/"+ hostname + "__" + ip + "__" + Today + ".log"txt_write(logname,output,command)if devtype == 'cisco_ios':      #思科 浪潮设备net_connect = ConnectHandler(device_type=devtype,ip=ip,username=name,password=devpasswd,)for command in InspurCommandList:output = net_connect.send_command(command)logname =BackPath + Today + "/"+ hostname + "__" + ip + "__" + Today + ".log"txt_write(logname,output,command)if __name__ == '__main__':make_dir(BackPath + Today + "/")time.sleep(1)  devlist = open( FilePath + '/devlist.txt', 'r')for line in devlist.readlines():line = line.replace('\n', '')   #去除\Nline = line.replace(' ', '')   #去除空格ssh_session(line)devlist.close

3.netmiko支持设备

windows系统默认存放路径及支持设备一览(AppData为文件夹隐藏的项目)

C:\Users\PC-li\AppData\Local\Programs\Python\Python39\Lib\site-packages\netmiko\ssh_dispatcher.py# The keys of this dictionary are the supported device_types
CLASS_MAPPER_BASE = {"a10": A10SSH,"accedian": AccedianSSH,"adtran_os": AdtranOSSSH,"alcatel_aos": AlcatelAosSSH,"alcatel_sros": NokiaSrosSSH,"allied_telesis_awplus": AlliedTelesisAwplusSSH,"apresia_aeos": ApresiaAeosSSH,"arista_eos": AristaSSH,"aruba_os": ArubaSSH,"aruba_osswitch": HPProcurveSSH,"aruba_procurve": HPProcurveSSH,"avaya_ers": ExtremeErsSSH,"avaya_vsp": ExtremeVspSSH,"broadcom_icos": BroadcomIcosSSH,"brocade_fos": BrocadeFOSSSH,"brocade_fastiron": RuckusFastironSSH,"brocade_netiron": ExtremeNetironSSH,"brocade_nos": ExtremeNosSSH,"brocade_vdx": ExtremeNosSSH,"brocade_vyos": VyOSSSH,"checkpoint_gaia": CheckPointGaiaSSH,"calix_b6": CalixB6SSH,"cdot_cros": CdotCrosSSH,"centec_os": CentecOSSSH,"ciena_saos": CienaSaosSSH,"cisco_asa": CiscoAsaSSH,"cisco_ftd": CiscoFtdSSH,"cisco_ios": CiscoIosSSH,"cisco_nxos": CiscoNxosSSH,"cisco_s300": CiscoS300SSH,"cisco_tp": CiscoTpTcCeSSH,"cisco_viptela": CiscoViptelaSSH,"cisco_wlc": CiscoWlcSSH,"cisco_xe": CiscoIosSSH,"cisco_xr": CiscoXrSSH,"cloudgenix_ion": CloudGenixIonSSH,"coriant": CoriantSSH,"dell_dnos9": DellForce10SSH,"dell_force10": DellForce10SSH,"dell_os6": DellDNOS6SSH,"dell_os9": DellForce10SSH,"dell_os10": DellOS10SSH,"dell_sonic": DellSonicSSH,"dell_powerconnect": DellPowerConnectSSH,"dell_isilon": DellIsilonSSH,"dlink_ds": DlinkDSSSH,"endace": EndaceSSH,"eltex": EltexSSH,"eltex_esr": EltexEsrSSH,"enterasys": EnterasysSSH,"ericsson_ipos": EricssonIposSSH,"extreme": ExtremeExosSSH,"extreme_ers": ExtremeErsSSH,"extreme_exos": ExtremeExosSSH,"extreme_netiron": ExtremeNetironSSH,"extreme_nos": ExtremeNosSSH,"extreme_slx": ExtremeSlxSSH,"extreme_tierra": ExtremeTierraSSH,"extreme_vdx": ExtremeNosSSH,"extreme_vsp": ExtremeVspSSH,"extreme_wing": ExtremeWingSSH,"f5_ltm": F5TmshSSH,"f5_tmsh": F5TmshSSH,"f5_linux": F5LinuxSSH,"flexvnf": FlexvnfSSH,"fortinet": FortinetSSH,"generic": GenericSSH,"generic_termserver": TerminalServerSSH,"hp_comware": HPComwareSSH,"hp_procurve": HPProcurveSSH,"huawei": HuaweiSSH,"huawei_smartax": HuaweiSmartAXSSH,"huawei_olt": HuaweiSmartAXSSH,"huawei_vrpv8": HuaweiVrpv8SSH,"ipinfusion_ocnos": IpInfusionOcNOSSSH,"juniper": JuniperSSH,"juniper_junos": JuniperSSH,"juniper_screenos": JuniperScreenOsSSH,"keymile": KeymileSSH,"keymile_nos": KeymileNOSSSH,"linux": LinuxSSH,"mikrotik_routeros": MikrotikRouterOsSSH,"mikrotik_switchos": MikrotikSwitchOsSSH,"mellanox": MellanoxMlnxosSSH,"mellanox_mlnxos": MellanoxMlnxosSSH,"mrv_lx": MrvLxSSH,"mrv_optiswitch": MrvOptiswitchSSH,"netapp_cdot": NetAppcDotSSH,"netgear_prosafe": NetgearProSafeSSH,"netscaler": NetscalerSSH,"nokia_sros": NokiaSrosSSH,"oneaccess_oneos": OneaccessOneOSSSH,"ovs_linux": OvsLinuxSSH,"paloalto_panos": PaloAltoPanosSSH,"pluribus": PluribusSSH,"quanta_mesh": QuantaMeshSSH,"rad_etx": RadETXSSH,"raisecom_roap": RaisecomRoapSSH,"ruckus_fastiron": RuckusFastironSSH,"ruijie_os": RuijieOSSSH,"sixwind_os": SixwindOSSSH,"sophos_sfos": SophosSfosSSH,"supermicro_smis": SmciSwitchSmisSSH,"tplink_jetstream": TPLinkJetStreamSSH,"ubiquiti_edge": UbiquitiEdgeSSH,"ubiquiti_edgerouter": UbiquitiEdgeRouterSSH,"ubiquiti_edgeswitch": UbiquitiEdgeSSH,"ubiquiti_unifiswitch": UbiquitiUnifiSwitchSSH,"vyatta_vyos": VyOSSSH,"vyos": VyOSSSH,"watchguard_fireware": WatchguardFirewareSSH,"zte_zxros": ZteZxrosSSH,"yamaha": YamahaSSH,"zyxel_os": ZyxelSSH,
}

三、参考资料

1.Python官方netmiko库

2.Github官方netmiko库

三、exe脚本下载

目前支持win10版本下,H3C、华为、浪潮、思科设备。
下载地址在我的博客资源里

全网最全Python netmiko库实现自动化备份网络设备配置、路由、cpu、内存、电源等相关推荐

  1. Python netmiko库实现huawei/h3c网络设备配置

    Python版本3.9.12  一.netmiko 4.1.0版本安装  进入CMD,输入下记命令进行安装  pip install  netmiko==4.1.0 1  查看pip安装的组件列表命令 ...

  2. 独家 | 用Python Featuretools库实现自动化特征工程(附链接)

    作者:Prateek Joshi 翻译:张玲 校对:李润嘉 本文约4000字,建议阅读10分钟. 本文简要介绍特征工程的基本组成部分,并用直观的示例理解它们,最后给出使用Python Featuret ...

  3. 全网最全python实现数据挖掘,数据分析(matlablib,pandas,numpy,量化分析)(附源代码)

    全网最全python实现数据挖掘,数据分析(matlablib,pandas,numpy,量化分析)(附源代码) 1.横直方图电影票房 2.散点图3月与10月每天的天气 3.条形图电影票房 4.条形图 ...

  4. 全网最全 Python 操作 Excel 教程,建议收藏!

    [欢迎关注微信公众号:厦门微思网络] 微思网络(官网):https://www.xmws.cn/ 0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库) ...

  5. 全网最全Python爬虫工具使用指南

    网络爬虫就是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.今天小编特意整理了一些实用的Python爬虫小工具,希望对大家的工作学习有帮助. 通用: urllib -网络库(stdlib). ...

  6. 全网最全Python操作Excel教程,建议收藏!

    作者:超级大洋葱806 来源:https://blog.csdn.net/u014779536/article/details/108182833 大家好,猪哥前几天帮学妹爬了个数据,使用到了Pyth ...

  7. 全网最全Python操作Excel教程,赶紧收藏

    0 Python Excel库对比 我们先来看一下python中能操作Excel的库对比(一共九个库): 1 Python xlrd 读取 操作Excel 1.1 xlrd模块介绍 (1)什么是xlr ...

  8. 全网最全python爬虫+数据分析资源整理

    4.29(第二天) 开篇词 你为什么需要数据分析能力? 第一模块:数据分析基础篇 (16讲) 01丨数据分析全景图及修炼指南 02丨学习数据挖掘的最佳路径是什么? 03丨Python基础语法:开始你的 ...

  9. 【办公自动化】全网最全python中openpyxl库用法

    python中的opepyxl库是一个用于读写Excel2010版本以上的xlsx/xlsm/xltx/xltm文件的Python库,拥有十分强大的功能. 此篇文章介绍openpyxl中的大部分功能. ...

最新文章

  1. 基于Spark ALS算法的个性化推荐
  2. 通过MATLAB提取图像的深度信息
  3. @RabbitListener组合注解消费消息
  4. PHP的time函数返回时间不正确
  5. Entity Framework5.0运行时错误ObjectStateManager 中已存在具有同一键的对象
  6. javaweb系统oracle锁表,oracle、websphere下获取数据库连接时出现死锁
  7. 结对开发2(求二维数组的最大子数组和)
  8. 物联网中使用的常见通信技术
  9. (转) C#网速监测
  10. clover写入efi_黑苹果安装核心文件-四叶草引导Clover EFI 配置文件结构讲解
  11. 【GOF】三种工厂模式~
  12. 鼠标滑过图片文字遮罩效果
  13. 如何在电脑端免费下载歌曲?
  14. qt中将按钮指向的鼠标变成手型
  15. Go基础语法(短句精简版)(上)
  16. 学习笔记 -《量子计算与编程入门》- 量子程序
  17. php加入语音播报功能_PHP实现语音播报功能
  18. C#中WebService里的回车符\r丢失问题
  19. EasyExcel大批量数据导出OOM,个人案例和解决办法
  20. win10 安装office 2016 plus 备忘

热门文章

  1. r7 7700x参数 锐龙r7 7700x核显相当于什么显卡
  2. 直方图的相关知识(第九天)
  3. 如何成为躺着赚钱的科学家
  4. Qt间接平差法进行直线拟合(Eigen运算、Qcustomplot绘图)
  5. 毕业设计So Easy:在线考试答题系统
  6. 彩票抽奖机模拟器(祝君早中大奖)
  7. Java毕设项目教育培训机构信息管理系统计算机(附源码+系统+数据库+LW)
  8. 2.4 隐函数和参数方程的导数 相关变化率
  9. Elastic-Job分布式任务调度(1):概述
  10. speedoffice(Excel)如何求平均数