add_filter('xmlrpc_enabled', '__return_false'); python与思科交换机交互提取交换机信息 | 癹冬阁
  • 欢迎访问癹冬阁,本站专注于IT服务,记录工作点滴

python与思科交换机交互提取交换机信息

开源世界 Winter 2个月前 (04-27) 101次浏览 已收录 0个评论

上一篇博文写了关于提取思科交换机并分析处理的 python 脚本.我们也还可以用python只提取交换机的配置用于备份交换机.

把上篇中的脚本做了一些简化,只提取信息并保存,每条命令保存为一个文件.

#!/usr/bin/env python
#-*- coding:utf-8 -*-
#Date:2018/4/27
#Created by Winters
#Blog:https://www.8win.net
from netmiko import ConnectHandler
import time
#定义单次循环内容
def cisco(ip):
    "思科交换机配置导出"
    cisco_switch = {
        'device_type': 'cisco_ios', #设备类型
        'ip': ip, #设备 IP
        'username': 'user', #登陆用户名
        'password': 'password', #登陆密码
        'port': 22, #登陆端口,默认 22
        'secret': 'enable', #enable 密码
        'verbose': False,#是否详细报告,默认否
    }
    net_connect = ConnectHandler(**cisco_switch) #连接到交换机
    net_connect.enable() #进入特权模式
    #交换机需要执行的命令
    commands = [
        'show interfaces',
        'show arp',
        'show run',
    ]
    #处理获取的命令结果,并保存为 txt 文件
    timestr = time.strftime('%Y-%m-%d', time.localtime(time.time()))
    for cmd in commands:
        filename = u'%s_%s_%s.txt' % (ip, cmd.replace(' ', '_'), timestr)
        save = open(filename, 'w')
        result = net_connect.send_command(cmd)
        save.write(result)
    net_connect.disconnect()
if __name__ == '__main__':
    ips = [
        '192.168.0.1', #交换机 1IP 地址
        '192.168.0.2', #交换机 2IP 地址
    ]
    for ip in ips:
        cisco(ip)


癹冬阁版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明python 与思科交换机交互提取交换机信息
喜欢 (0)
[winters@8win.net]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址