网络设备简单运维python加powershell(二)

本文介绍了如何改进原有的网络设备运维代码,通过将设备信息存入SQL数据库,实现对70多台交换机的统一管理。利用Python抓取交换机信息并优化Excel输出,包括按楼层分页、调整格式。数据库截图展示了F5Switch、MACF5和DHCP表的结构。最终实现了更高效、易维护的成果。
摘要由CSDN通过智能技术生成

改进

1、以前的代码比较适合交换机少的情况,一个交换机写一个代码,现在有70多台交换机,把交换机的信息导入sql数据库,然后用一段代码写完。(数据库真的很好用,导入修改都很方便,以后新增交换机,修改数据库就可以了)
2、生成的excel文档,行数太多,根据楼层,分层多个页,每页就不会有很多行。

代码

抓取交换机信息代码,改进。

import pexpect
import sys
import datetime
import os
import pymssql
today=datetime.date.today().strftime('%Y%m%d')
path = "/root/F5/"+today
os.mkdir(path,777)
passwd='xxx'
def Switch(S,I,N):#循环找到数据库每行里面对应的数据,交换机的名字、IP等。
    try:#遇到错误信息,直接掠过,防止因一个交换机信息有误,导致程序不能继续进行。
        name1="---- More ----"
        child=pexpect.spawn('telnet %s'%I)#循环telnetIP地址
        fout=open('/root/F5/'+today+'/'+'%s-%s.txt'%(S,I),'wb+')
        child.logfile = fout
        child.expect('Username:')
        child.sendline("admin")
        child.expect('(?i)ssword:')
        child.sendline("%s"%passwd)
        child.expect('<%s>'%N)
        child.sendline("dis mac-address")
        for i in range(10):
          index = child.expect([name1,'<%s>'%N])
          if ( index == 0 ):
            child.send(" ")
          else:
            child.sendline("quit")  
            break#不能用sys.exit()
    except:
         pass

host = 'x.x.x.x'
user = 'sa'
pwd = 'xxxxxx'
db = 'MAC'
conn = pymssql.connect(host=host,user=user,password=pwd,database=db,timeout=1,login_timeout=1,charset="utf8")
cur = conn.cursor()
sqls ="select * from [dbo].[F5Switch]"
cur.execute(sqls)
listall = cur.fetchall()
for
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值