netmiko是python中可用于network device 备份的库,目前支持的设备以下: As of June 2015, Netmiko has support for the following platforms: Cisco IOS Cisco IOS-XE Cisco ASA Cisco NX-OS Cisco IOS-XR Cisco WLC (limited testing) Arista EOS HP ProCurve HP Comware (limited testing) Juniper Junos Brocade VDX (limited testing) F5 LTM (experimental) Huawei (limited testing)
下面是一段使用netmiko库登录ciscorouter 3360 的python代码html
from netmiko import ConnectHandler
#要链接设备的信息,顺序不重要python
cisco = { 'device_type':'cisco_ios', 'ip':'192.168.60.222', 'username':'admin', 'password': 'password', 'secret':'google', #enable password }
#进行ssh链接ios
connect=ConnectHandler(**cisco) #对于两个*号,个人理解是:ConnectHandler()函数须要在cisco字典里面找"两"个东西,key和对应的value,因此用两个*星号
#若是enable有密码须要在配置链接的时候配置,例如 'secret':'google' ,输入connect.send_command('enable') 是无效的ssh
connect.enable() #至关于进入特权模式 output_1 = connect.send_command('show run') print("show run 的输出以下:\n"+output_1) print("----------------------")
#输入connect.send_command('config ter')是进不了配置模式的,须要配置直接输入connect.send_config_set('cli')ide
out_put_2 = connect.send_config_set('ip route 0.0.0.0 0.0.0.0 192.168.60.129') #至关于输入特权模式 + 输入配置命令 print("配置默认路由后的输出:\n\n"+out_put_2+"\n\n") #输出配置过程
#查看上述的配置是否生效函数
show_route = connect.send_command('show ip route') #send_command('cli')命令执行的结果只能在本级,不能exit或者 enable、configure terminal print("查看路由条目:\n"+show_route)
—————————————————————————————————————————————————————————————————————————— 上述文件的输出以下(因篇幅问题,有部分会有删除):
一、show run 的输出以下: Building configuration... Current configuration : 874 bytes ! version 12.4 service timestamps debug datetime msec service timestamps log datetime msec logging synchronous line aux 0 exec-timeout 0 0 privilege level 15 logging synchronous line vty 0 4 login local ! ! end ---------------------- 二、配置默认路由后的输出: config term Enter configuration commands, one per line. End with CNTL/Z. R1(config)#ip route 0.0.0.0 0.0.0.0 192.168.60.129 R1(config)#end R1# 三、查看路由条目: Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route Gateway of last resort is 192.168.60.129 to network 0.0.0.0 C 192.168.60.0/24 is directly connected, FastEthernet0/0 S* 0.0.0.0/0 [1/0] via 192.168.60.129 Process finished with exit code 0
参考连接:
①https://pypi.python.org/pypi/netmiko/1.4.1
②https://pynet.twb-tech.com/blog/automation/netmiko.htmlui