打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[Python] 网络设备巡检脚本

#!/usr/bin/env python

# -*- coding:utf-8 -*-

#import sys

#reload(sys)

import xlsxwriter,os,datetime

def cmd(sname,fname):                # 该函数判断巡检命令行所在输出文件位置

  i=1

  f=open(fname)

  line_hang_list=[]

  for line in f:

    if line.find(sname) == 0:

      line_hang_list.append(i)

    i+=1

  f.close

  return line_hang_list

def cmd1(sname,fname):       # 同上

  i=1

  f=open(fname)

  line_hang_list=[]

  for line in f:

    if sname in line:

      line_hang_list.append(i)

    i+=1

  f.close

  return line_hang_list

tday=datetime.date.today().strftime('%Y.%m.%d')

today=datetime.date.today().strftime('%Y%m%d')

workbook=xlsxwriter.Workbook(u'/usr/sh/shell/linux/xunjian/%s/网络设备巡检-%s.xlsx'%(today,tday),{'strings_to_numbers':True})

file_01='/usr/sh/shell/linux/xunjian/'+str(today)+'/01DMZ-E8000E.txt'

file_02_1='/usr/sh/shell/linux/xunjian/'+str(today)+'/03SM-M9006.txt'

file_02_2='/usr/sh/shell/linux/xunjian/'+str(today)+'/02DMZ-M9006.txt'

file_03='/usr/sh/shell/linux/xunjian/'+str(today)+'/04IN-FG3950B.txt'

# 新建 sheet

worksheet0=workbook.add_worksheet(u'防火墙')

worksheet1=workbook.add_worksheet(u'交换机')

worksheet2=workbook.add_worksheet(u'路由器')

worksheet3=workbook.add_worksheet(u'负载')

# 设置单元格格式(居中,颜色,边框,合并,列宽,列隐藏等)

colour='#660099'

format_title=workbook.add_format()

format_title.set_border(1)

format_title.set_bottom(2)

format_title.set_bold(1)

format_title.set_font_color('white')

format_title.set_bg_color(colour)

format_title.set_align('center')

format_title.set_valign('vcenter')

format_nr=workbook.add_format()

format_nr.set_border(1)

format_nr.set_bottom(2)

format_nr.set_align('center')

format_nr.set_valign('vcenter')

format_nrr=workbook.add_format()

format_nrr.set_border(1)

format_nrr.set_valign('vcenter')

format_nrr.set_text_wrap()

format_bottom=workbook.add_format()

format_bottom.set_border(1)

format_bottom.set_bottom(2)

format_bottom.set_valign('vcenter')

format_bottom.set_text_wrap()

format_rt=workbook.add_format()

format_rt.set_border(1)

format_rt.set_right(2)

format_rt.set_valign('left')

format_rt.set_text_wrap()

format_right=workbook.add_format()

format_right.set_border(1)

format_right.set_right(2)

format_right.set_bottom(2)

format_right.set_valign('vcenter')

format_right.set_text_wrap()

format_red=workbook.add_format()

format_red.set_font_color('red')

format_red.set_border(1)

format_red.set_right(2)

format_red.set_valign('vcenter')

format_rd=workbook.add_format()

format_rd.set_font_color('red')

format_rd.set_border(1)

format_rd.set_right(2)

format_rd.set_bottom(2)

format_rd.set_valign('vcenter')

# 填写相关固定单元格内容

firewall_title=[u'设备名称',u'设备类型',u'IP地址',u'检查项',u'命令',u'说明',u'检查结果']

firewall_jc=[u'设备状态',u'运行时长',u'运行温度',u'Flash状态',u'CPU使用率',u'内存使用率',u'冗余组状态',u'session数目',u'路由条数',u'端口状态',u'策略条数',u'告警',u'日志',u'板卡状态',u'运行时长',u'运行温度',u'Flash状态',u'CPU使用率',u'内存使用率',u'堆叠状态',u'冗余组状态',u'session数目',u'路由条数',u'端口状态',u'策略条数',u'告警',u'日志',u'板卡状态',u'运行时长',u'运行温度',u'Flash状态',u'CPU使用率',u'内存使用率',u'堆叠状态',u'冗余组状态',u'session数目',u'路由条数',u'端口状态',u'策略条数',u'告警',u'日志',u'运行时长',u'CPU使用率 (BOMC)',u'内存使用率',u'网络流量',u'session数目',u'新建session速率',u'接口状态',u'冗余组状态',u'路由条数',u'日志',u'策略条数',u'告警']

firewall_cmd=['dis device | ex Normal','dis version','dis temperature','dir',u'BOMC','dis memory-usage','dis hrp state','dis firewall session table','dis ip routing-table protocol static','dis int brief (dis logbuffer | in DOWN)','dis acl 3004 (3004-3007)','dis alarm all','dis logbuffer | in [data]','dis device | ex Normal','dis version | in uptime','dis environment','dir | in total',u'BOMC','dis memory','dis irf link','dis redundancy group','dis session statistics summary','dis ip routing-table protocol static','dis int brief (dis logbuffer | in DOWN)','dis object-policy ip','dis alarm','dis logbuffer | in [month]','dis device | ex Normal','dis version | in uptime','dis environment','dir | in total',u'BOMC','dis memory','dis irf link','dis redundancy group','dis session statistics summary','dis ip routing-table protocol static','dis int brief (dis logbuffer | in DOWN)','dis acl all','dis alarm','dis logbuffer | in [month]','get sys performance status','','','','diagnose sys session stat','',u'网页登录查看',u'网页登录查看','get route info routing table static',u'网页登录查看',u'网页登录查看',u'网页登录查看']

firewall_sm=[u'填写StatusAbnormal的项',u'填写已运行天数,小时数',u'填写温度范围',u'填写totalfreeflash大小',u'填写CPU使用率峰值和平均值',u'填写内存使用率',u'填写本机和邻居的角色,看有无发生主备切换',u'填写链接总数',u'填写路由数目',u'填写状态为UP的端口数目',u'填写策略数目',u'填写告警内容,无告警则填写“无告警”',u'填写异常日志,无异常则填写“正常”',u'填写StateAbsent,且Type不为NONE的项',u'填写已运行天数,小时数',u'填写温度范围',u'填写totalfreeflash大小',u'填写CPU使用率峰值和平均值',u'填写内存使用率范围',u'填写Status不是UP的项',u'填写Status,看有无发生主备切换',u'填写链接总数',u'填写路由数目',u'填写状态为UP的端口数目',u'填写策略数目(所有rule的总数)',u'填写告警内容,无告警则填写“无告警”',u'填写异常日志,无异常则填写“正常”',u'填写StateAbsent,且Type不为NONE的项',u'填写已运行天数,小时数',u'填写温度范围',u'填写totalfreeflash大小',u'填写CPU使用率峰值和平均值',u'填写内存使用率范围',u'填写Status不是UP的项',u'填写Status,看有无发生主备切换',u'填写链接总数',u'填写路由数目',u'填写状态为UP的端口数目',u'填写策略数目(acl 3001+3002的总条目数)',u'填写告警内容,无告警则填写“无告警”',u'填写异常日志,无异常则填写“正常”',u'填写已运行天数,小时数',u'填写CPU使用率峰值和平均值',u'填写内存使用率',u'填写30分钟内平均带宽占用(kbps',u'填写session_count',u'填写setup_rate',u'填写启用状态的接口数目',u'填写冗余状态',u'填写路由数目',u'填写异常日志,无异常则填写“正常”',u'填写策略数目',u'填写告警内容,无告警则填写“无告警”']

switch_title=[u'设备名称',u'设备类型',u'IP地址',u'检查项',u'命令',u'说明',u'检查结果']

switch_jc=[u'设备状态',u'运行时长',u'Flash状态',u'CPU使用率',u'内存使用率',u'接口状态',u'VRRP状态',u'MAC地址条目数',u'ARP条目数',u'路由条目数',u'运行温度',u'告警',u'日志']

switch_jc1=[u'设备状态',u'运行时长',u'Flash状态',u'CPU使用率',u'内存使用率',u'堆叠状态',u'接口状态',u'MAC地址条目数',u'ARP条目数',u'路由条目数',u'运行温度',u'告警',u'日志']

switch_jc2=[u'设备状态',u'运行时长',u'Flash状态',u'CPU使用率',u'内存使用率',u'堆叠状态',u'接口状态',u'MAC地址条目数',u'ARP条目数',u'运行温度',u'告警',u'日志']

switch_cmd=['dis device','dis version | in Quidway','dir','dis cpu-usage','dis memory-usage','dis int brief (dis logbuffer | in IF_STATE)','dis vrrp brief','dis mac-address total-number','dis arp statistics all','dis ip routing-table protocol static','dis temperature all','dis alarm all','dis logbuffer | in [date]']

switch_cmmd=['dis device | ex Normal','dis version | in H3C S12508','dir',u'BOMC','dis memory','dis irf link','dis int brief (dis logbuffer reverse | in UPDOWN)','dis mac-address count','dis arp all count','dis ip routing-table vpn-instance Dmz/Inside protocol static','dis environment','dis alarm','dis logbuffer reverse | in [date]']

switch_cmd1=['dis device | ex Normal','dis version | in H3C S12508','dir',u'BOMC','dis memory','dis int brief (dis logbuffer reverse | in UPDOWN)','dis vrrp','dis mac-address count','dis arp all count','dis ip routing-table protocol static','dis environment','dis alarm','dis logbuffer reverse | in [date]']

switch_cmd2=['dis device | ex Normal','dis version | in H3C S12508','dir',u'BOMC','dis memory','dis irf link','dis int brief (dis logbuffer reverse | in UPDOWN)','dis mac-address count','dis arp all count','dis environment','dis alarm','dis logbuffer reverse | in [date]']

switch_sm=[u'查看电源、风扇以及板卡状态,填写异常项',u'填写已运行天数,小时数',u'填写totalfreeflash大小',u'填写CPU使用率',u'填写内存使用率',u'填写状态为UP的端口数目',u'查看VRRP主备状态',u'填写总的mac-address条目数',u'填写动态和静态ARP条目数',u'填写路由数目',u'填写温度范围',u'填写告警内容,无告警则填写“无告警”',u'填写异常日志,无异常则填写“正常”']

switch_ssm=[u'填写状态异常的项',u'填写已运行天数,小时数',u'填写totalfreeflash大小',u'填写CPU使用率峰值和平均值',u'填写内存使用率',u'填写Status不是UP的项',u'填写状态为UP的端口数目',u'填写总的mac-address条目数',u'填写总的ARP条目数',u'填写路由数目(DmzInside路由总和)',u'填写温度范围',u'填写设备告警,无则填写“无告警”',u'填写异常日志,无异常则填写“正常”']

switch_sm1=[u'填写状态异常的项',u'填写已运行天数,小时数',u'填写totalfreeflash大小',u'填写CPU使用率峰值和平均值',u'填写内存使用率',u'填写状态为UP的端口数目',u'查看VRRP主备状态',u'填写总的mac-address条目数',u'填写总的ARP条目数',u'填写路由数目',u'填写温度范围',u'填写设备告警,无则填写“无告警”',u'填写异常日志,无异常则填写“正>常”']

switch_sm2=[u'填写状态异常的项',u'填写已运行天数,小时数',u'填写totalfreeflash大小',u'填写CPU使用率峰值和平均值',u'填写内存使用率',u'填写Status不是UP的项',u'填写状态为UP的端口数目',u'填写总的mac-address条目数',u'填写总的ARP条目数',u'填写温度范围',u'填写设备告警,无则填写“无告警”',u'填写异常日志,无异常则填写“正>常”']

route_title=[u'设备名称',u'设备类型',u'IP地址',u'检查项',u'命令',u'说明',u'检查结果']

route_jc=[u'设备状态',u'运行时长',u'Flash状态',u'CPU使用率',u'内存使用率',u'接口状态',u'路由条数',u'运行温度',u'告警',u'日志']

route_cmd=['dis device | ex Normal','dis version | in NE40E-X8 uptime','dir',u'BOMC','dis memory-usage','dis int brief (dis logbuffer | in IF_STATE)','dis ip routing-table protocol static','dis temperature','dis alarm all','dis logbuffer | in [date]']

route_sm=[u'填写Status不是“Normal”的项',u'填写已运行天数,小时数',u'填写totalfreeflash大小',u'填写CPU使用率峰值和平均值',u'填写内存使用率',u'填写状态为UP的端口数目',u'填写路由数目',u'填写温度范围',u'填写告警内容,无告警则填写“无告警”',u'填写异常日志,无异常则填写“正常”']

fuzai_title=[u'设备名称',u'设备类型',u'IP地址',u'检查项',u'命令',u'说明',u'检查结果']

fuzai_jc=[u'运行时长',u'电源状态',u'风扇状态',u'端口状态',u'各表项数值',u'CPU使用率',u'内存使用率',u'硬件温度',u'冗余状态',u'日志']

fuzai_cmd=['/i/sys/general','/i/sys/ps','/i/sys/fan','/i/link','/i/sys/capacity slb','/stats/mp/cpu','/stats/mp/mem','/i/sys/temp','/i/l3/vrrp','/i/sys/log']

fuzai_sm=[u'填写已运行天数,小时数',u'填写电源状态',u'填写风扇状态',u'填写Link处于UP状态的端口数',u'填写real servers/server groups/virtual servers/filters当前值',u'填写CPU使用率',u'填写内存使用率',u'填写温度',u'填写VRRP状态,'master'或者'backup'',u'填写异常日志,无异常则填写“正常”']

newsmswitch_title=[u'设备状态',u'运行时长',u'Flash状态',u'CPU使用率',u'内存使用率',u'接口状态',u'HSRP状态',u'MAC地址条目数',u'ARP条目数',u'路由条目数',u'运行温度',u'VPC状态',u'日志']

newsmswitch_cmd=['sh hardware | in ok','sh version | in uptime','dir',u'BOMC',u'BOMC','sh int brief (sh int brief | in up)','sh hsrp brief','sh mac address-table count','sh ip arp | in number','sh ip route static summary','sh environment temperature','sh vpc','sh logging last 30']

newsmswitch_sm=[u'填写状态为OK的模块数',u'填写已运行天数,小时数',u'填写totalfreeflash大小',u'填写CPU使用率峰值和平均值',u'填写内存使用率',u'填写状态为UP的端口数目',u'查看HSRP状态(Active local则正常)',u'填写总的mac-address条目数',u'填写总的ARP条目数',u'填写路由数目',u'填写CurTemp范围',u'查看VPC状态是否正常',u'查看日志,无异常则填写'正常'']

# ip 我就隐藏掉啦,虽然也没什么意思

host={'DMZ-E8000E':[u'防火墙','ip1'],'DMZ-M9006':[u'防火墙','ip2'],'SM-M9006':[u'防火墙','ip3'],'IN-FG3950B':[u'防火墙','ip4'],'DMZ-S9306-1':[u'交换机','ip5'],'DMZ-S9306-2':[u'交换机','ip6'],'DMZ-S12508':[u'交换机','ip7'],'IN-S12508':[u'交换机','ip8'],'SM-S12508-1':[u'交换机','ip9'],'SM-S12508-2':[u'交换机','ip10'],'DMZ-NE40E-1':[u'路由器','ip11'],'DMZ-NE40E-2':[u'路由器','ip12'],'DMZ-RD5412-1':[u'负载','ip13'],'DMZ-RD5412-2':[u'负载','ip14'],'SM-RD6420-1':[u'负载','ip15'],'SM-RD6420-2':[u'负载','ip16'],'SM-N7K-1':[u'交换机','ip17'],'SM-N7K-2':[u'交换机','ip18']}

# 开始填写固定单元格内容

worksheet0.write_row('A1',firewall_title,format_title)

worksheet0.merge_range('A2:A14','DMZ-E8000E',format_nr)

worksheet0.merge_range('B2:B14',host['DMZ-E8000E'][0],format_nr)

worksheet0.merge_range('C2:C14',host['DMZ-E8000E'][1],format_nr)

worksheet0.merge_range('A15:A28','DMZ-M9006',format_nr)

worksheet0.merge_range('B15:B28',host['DMZ-M9006'][0],format_nr)

worksheet0.merge_range('C15:C28',host['DMZ-M9006'][1],format_nr)

worksheet0.merge_range('A29:A42','SM-M9006',format_nr)

worksheet0.merge_range('B29:B42',host['SM-M9006'][0],format_nr)

worksheet0.merge_range('C29:C42',host['SM-M9006'][1],format_nr)

worksheet0.merge_range('A43:A54','IN-FG3950B',format_nr)

worksheet0.merge_range('B43:B54',host['IN-FG3950B'][0],format_nr)

worksheet0.merge_range('C43:C54',host['IN-FG3950B'][1],format_nr)

worksheet0.merge_range('E43:E46','get sys performance status',format_nrr)

worksheet0.merge_range('E47:E48','diagnose sys session stat',format_nrr)

worksheet0.write_column('D2',firewall_jc,format_nrr)

worksheet0.write_column('E2',firewall_cmd,format_nrr)

worksheet0.write_column('F2',firewall_sm,format_nrr)

worksheet0.write('D14',u'日志',format_bottom)

worksheet0.write('E14','dis logbuffer | in [data]',format_bottom)

worksheet0.write('F14',u'填写异常日志,无异常则填写“正常”',format_bottom)

worksheet0.write('D28',u'日志',format_bottom)

worksheet0.write('E28','dis logbuffer reverse | in [month]',format_bottom)

worksheet0.write('F28',u'填写异常日志,无异常则填写“正常”',format_bottom)

worksheet0.write('D42',u'日志',format_bottom)

worksheet0.write('E42','dis logbuffer reverse | in [month]',format_bottom)

worksheet0.write('F42',u'填写异常日志,无异常则填写“正常”',format_bottom)

worksheet0.write('D54',u'告警',format_bottom)

worksheet0.write('E54',u'网页登录查看',format_bottom)

worksheet0.write('F54',u'填写告警内容,无告警则填写“无告警”',format_bottom)

worksheet0.set_row(0,30)

worksheet0.set_column('B:B',15,None,{'hidden':1})

worksheet0.set_column('E:F',40,None,{'hidden':1})

worksheet0.set_column('A:A',15)

worksheet0.set_column('C:D',15)

worksheet0.set_column('G:G',40)

worksheet1.write_row('A1',switch_title,format_title)

worksheet1.merge_range('A2:A14','DMZ-S9306-1',format_nr)

worksheet1.merge_range('B2:B14',host['DMZ-S9306-1'][0],format_nr)

worksheet1.merge_range('C2:C14',host['DMZ-S9306-1'][1],format_nr)

worksheet1.merge_range('A15:A27','DMZ-S9306-2',format_nr)

worksheet1.merge_range('B15:B27',host['DMZ-S9306-2'][0],format_nr)

worksheet1.merge_range('C15:C27',host['DMZ-S9306-2'][1],format_nr)

worksheet1.merge_range('A28:A40','DMZ-S12508',format_nr)

worksheet1.merge_range('B28:B40',host['DMZ-S12508'][0],format_nr)

worksheet1.merge_range('C28:C40',host['DMZ-S12508'][1],format_nr)

worksheet1.merge_range('A41:A52','IN-S12508',format_nr)

worksheet1.merge_range('B41:B52',host['IN-S12508'][0],format_nr)

worksheet1.merge_range('C41:C52',host['IN-S12508'][1],format_nr)

worksheet1.merge_range('A53:A65','SM-N7K-1',format_nr)

worksheet1.merge_range('B53:B65',host['SM-N7K-1'][0],format_nr)

worksheet1.merge_range('C53:C65',host['SM-N7K-1'][1],format_nr)

worksheet1.merge_range('A66:A78','SM-N7K-2',format_nr)

worksheet1.merge_range('B66:B78',host['SM-N7K-2'][0],format_nr)

worksheet1.merge_range('C66:C78',host['SM-N7K-2'][1],format_nr)

worksheet1.write_column('D2',switch_jc,format_nrr)

worksheet1.write_column('D15',switch_jc,format_nrr)

worksheet1.write_column('D28',switch_jc1,format_nrr)

worksheet1.write_column('D41',switch_jc2,format_nrr)

worksheet1.write_column('D53',newsmswitch_title,format_nrr)

worksheet1.write_column('D66',newsmswitch_title,format_nrr)

worksheet1.write_column('E2',switch_cmd,format_nrr)

worksheet1.write_column('E15',switch_cmd,format_nrr)

worksheet1.write_column('E28',switch_cmmd,format_nrr)

worksheet1.write_column('E41',switch_cmd2,format_nrr)

worksheet1.write_column('E53',newsmswitch_cmd,format_nrr)

worksheet1.write_column('E66',newsmswitch_cmd,format_nrr)

worksheet1.write_column('F2',switch_sm,format_nrr)

worksheet1.write_column('F15',switch_sm,format_nrr)

worksheet1.write_column('F28',switch_ssm,format_nrr)

worksheet1.write_column('F41',switch_sm2,format_nrr)

worksheet1.write_column('F53',newsmswitch_sm,format_nrr)

worksheet1.write_column('F66',newsmswitch_sm,format_nrr)

worksheet1.set_row(0,30)

worksheet1.set_column('B:B',15,None,{'hidden':1})

worksheet1.set_column('E:F',40,None,{'hidden':1})

worksheet1.set_column('A:A',15)

worksheet1.set_column('C:D',15)

worksheet1.set_column('G:G',40)

worksheet2.write_row('A1',route_title,format_title)

worksheet2.merge_range('A2:A11','DMZ-NE40E-1',format_nr)

worksheet2.merge_range('B2:B11',host['DMZ-NE40E-1'][0],format_nr)

worksheet2.merge_range('C2:C11',host['DMZ-NE40E-1'][1],format_nr)

worksheet2.merge_range('A12:A21','DMZ-NE40E-2',format_nr)

worksheet2.merge_range('B12:B21',host['DMZ-NE40E-2'][0],format_nr)

worksheet2.merge_range('C12:C21',host['DMZ-NE40E-2'][1],format_nr)

worksheet2.write_column('D2',route_jc,format_nrr)

worksheet2.write_column('D12',route_jc,format_nrr)

worksheet2.write_column('E2',route_cmd,format_nrr)

worksheet2.write_column('E12',route_cmd,format_nrr)

worksheet2.write_column('F2',route_sm,format_nrr)

worksheet2.write_column('F12',route_sm,format_nrr)

worksheet2.set_row(0,30)

worksheet2.set_column('B:B',15,None,{'hidden':1})

worksheet2.set_column('E:F',40,None,{'hidden':1})

worksheet2.set_column('A:A',15)

worksheet2.set_column('C:D',15)

worksheet2.set_column('G:G',40)

worksheet3.write_row('A1',fuzai_title,format_title)

worksheet3.merge_range('A2:A11','DMZ-RD5412-1',format_nr)

worksheet3.merge_range('B2:B11',host['DMZ-RD5412-1'][0],format_nr)

worksheet3.merge_range('C2:C11',host['DMZ-RD5412-1'][1],format_nr)

worksheet3.merge_range('A12:A21','DMZ-RD5412-2',format_nr)

worksheet3.merge_range('B12:B21',host['DMZ-RD5412-2'][0],format_nr)

worksheet3.merge_range('C12:C21',host['DMZ-RD5412-2'][1],format_nr)

worksheet3.merge_range('A22:A31','SM-RD6420-1',format_nr)

worksheet3.merge_range('B22:B31',host['SM-RD6420-1'][0],format_nr)

worksheet3.merge_range('C22:C31',host['SM-RD6420-1'][1],format_nr)

worksheet3.merge_range('A32:A41','SM-RD6420-2',format_nr)

worksheet3.merge_range('B32:B41',host['SM-RD6420-2'][0],format_nr)

worksheet3.merge_range('C32:C41',host['SM-RD6420-2'][1],format_nr)

worksheet3.write_column('D2',fuzai_jc,format_nrr)

worksheet3.write_column('D12',fuzai_jc,format_nrr)

worksheet3.write_column('D22',fuzai_jc,format_nrr)

worksheet3.write_column('D32',fuzai_jc,format_nrr)

worksheet3.write_column('E2',fuzai_cmd,format_nrr)

worksheet3.write_column('E12',fuzai_cmd,format_nrr)

worksheet3.write_column('E22',fuzai_cmd,format_nrr)

worksheet3.write_column('E32',fuzai_cmd,format_nrr)

worksheet3.write_column('F2',fuzai_sm,format_nrr)

worksheet3.write_column('F12',fuzai_sm,format_nrr)

worksheet3.write_column('F22',fuzai_sm,format_nrr)

worksheet3.write_column('F32',fuzai_sm,format_nrr)

worksheet3.set_row(0,30)

worksheet3.set_column('B:B',15,None,{'hidden':1})

worksheet3.set_column('E:F',40,None,{'hidden':1})

worksheet3.set_column('A:A',15)

worksheet3.set_column('C:D',15)

worksheet3.set_column('G:G',40)

jcx=[u'日志','dis logbuffer | in [date]',u'填写异常日志,无异常则填写“正常”']

jcx1=[u'日志','dis logbuffer reverse | in [date]',u'填写异常日志,无异常则填写“正常”']

jcx2=[u'日志','sh logging last 30',u'查看日志,无异常则填写“正常”']

fuzai_jcx=[u'日志','/i/sys/log',u'填写异常日志,无异常则填写“正常”']

worksheet1.write_row('D14',jcx,format_bottom)

worksheet1.write_row('D27',jcx,format_bottom)

worksheet1.write_row('D40',jcx,format_bottom)

worksheet1.write_row('D52',jcx1,format_bottom)

worksheet1.write_row('D65',jcx2,format_bottom)

worksheet1.write_row('D78',jcx2,format_bottom)

worksheet2.write_row('D11',jcx,format_bottom)

worksheet2.write_row('D21',jcx,format_bottom)

worksheet3.write_row('D11',fuzai_jcx,format_bottom)

worksheet3.write_row('D21',fuzai_jcx,format_bottom)

worksheet3.write_row('D31',fuzai_jcx,format_bottom)

worksheet3.write_row('D41',fuzai_jcx,format_bottom)

# 这边开始根据之前与设备交互所得到的数据文件内容来填格子了。

#------------------------------------------------

#----------firewall_ip1----------------

#------------------------------------------------

try:

    hang=1

    temp=[]

    hang_list=cmd('HRP_M<JSYD-WX-12580-DMZ-E8000E-1>',file_01)

    rules=[]

    g=0

    with open(file_01) as f:

        for each_line in f:

            num=each_line.split()

            if hang > int(hang_list[1]) and hang < int(hang_list[2]):

              if int(hang_list[2])-int(hang_list[1]) == 6:

                worksheet0.write('G2',u'正常',format_rt)

              else:

                worksheet0.write('G2','ERROR',format_red)

            if hang > int(hang_list[2]) and hang < int(hang_list[3]):

              if num!=[]:

                if num[0] == 'HUAWEI':

                  worksheet0.write('G3',u'%s天,%s小时'%(num[4],num[6]),format_rt)

            if hang > int(hang_list[3]) and hang < int(hang_list[4]):

              if num!=[]:

                if len(num) == 11:

                  temp.append(num[-1])

            if hang > int(hang_list[4]) and hang < int(hang_list[5]):

              if num!=[]:

                if ',' in num[0]:

                  total=num[0].replace(',','')+' KB '+num[3].replace(',','')+' KB)'

                  worksheet0.write('G5',total,format_rt)

            if hang > int(hang_list[5]) and hang < int(hang_list[6]):

              if num!=[]:

                if num[0] == 'Memory':

                  worksheet0.write('G7',num[-1],format_rt)

            if hang > int(hang_list[6]) and hang < int(hang_list[7]):

              if num!=[]:

                if num[0] == 'Role:':

                  if num[1] == 'active,' and num[-1] == 'standby':

                    worksheet0.write('G8',u'正常',format_rt)

                  else:

                    worksheet0.write('G8',u'',format_red)

            if hang > int(hang_list[7]) and hang < int(hang_list[8]):

              if num!=[]:

                if num[0] == 'Current':

                  worksheet0.write('G9',str(num[-1]),format_rt)

            if hang > int(hang_list[8]) and hang < int(hang_list[9]):

              if num!=[]:

                if num[0] == 'Destinations' and len(num) == 10:

                  worksheet0.write('G10',str(num[2]),format_rt)

            if hang > int(hang_list[9]) and hang < int(hang_list[10]):

              if num!=[]:

                if len(num) == 7:

                  if num[1] == 'up':

                    g+=1

            if hang > int(hang_list[10]) and hang < int(hang_list[14]):

              if num!=[]:

                if num[0] == 'Advanced':

                  rules.append(num[3])

            if hang > int(hang_list[14]) and hang < int(hang_list[15]):

              if int(hang_list[-2])-int(hang_list[-3]) == 8:

                worksheet0.write('G13',u'无告警',format_rt)

              else:

                worksheet0.write('G13',u'有告警',format_red)

            if hang > int(hang_list[15]) and hang < int(hang_list[16]):

              pass

            hang = hang + 1

        temp.sort()

        worksheet0.write('G4',u'%s-%s'%(temp[0],temp[-1]),format_rt)

        worksheet0.write('G6',None,format_rt)

        worksheet0.write('G11',g,format_rt)

        worksheet0.write('G12','%s+%s+%s+%s=%d'%(rules[0],rules[1],rules[2],rules[3],int(rules[0])+int(rules[1])+int(rules[2])+int(rules[3])),format_rt)

        worksheet0.write('G14',u'正常',format_right)

except IOError as reason:

    print '01DMZ-E8000E.py '+str(reason)

#------------------------------------------------

#----------firewall_iP2----------------

#------------------------------------------------

try:

    hang=1

    state=dict()

    hang_list=cmd('<W-12580-M9006>',file_02_2)

    temp=[]

    rules=0

    mem=[]

    g=0

    all=0

    n=0

    level=0

    q=0

    status=0

    type=0

    with open(file_02_2) as f:

        for each_line in f:

            num=each_line.split()

            if hang > int(hang_list[0]) and hang < int(hang_list[1]):

              if num!=[]:

                if num[0].isdigit() and len(num) == 7:

                  if num[3] == 'Absent':

                    if num[2] != 'NONE':

                      type=1

            if hang > int(hang_list[1]) and hang < int(hang_list[2]):

              if num!=[]:

                if len(num) == 13:

                  worksheet0.write('G16',u'%d天,%s小时'%(int(num[5])*7+int(num[7]),num[9]),format_rt)

            if hang > int(hang_list[2]) and hang < int(hang_list[3]):

              if num!=[]:

                if len(num) == 9:

                  temp.append(num[4])

            if hang > int(hang_list[3]) and hang < int(hang_list[4]):

              if num!=[]:

                if len(num) == 6:

                  total='%s KB %s KB)'%(num[0],num[3])

                  worksheet0.write('G18',total,format_rt)

            if hang > int(hang_list[4]) and hang < int(hang_list[5]):

              if num!=[]:

                if len(num) == 8:

                  if num[-1] != 'KB:':

                    result='%.1f%%'%(100-float(num[-1].split('%')[0]))

                    mem.append(result)

            if hang > int(hang_list[5]) and hang < int(hang_list[6]):

              if num!=[]:

                if 'GigabitEthernet' in num[1]:

                  if num[2] != 'UP':

                    status+=1

                if 'GigabitEthernet' in num[0]:

                  if num[1] != 'UP':

                    status+=1

            if hang > int(hang_list[6]) and hang < int(hang_list[7]):

              if num!=[]:

                if num[0].isdigit() and len(num) == 5:

                  if num[3] != 'Primary' and  num[3] != 'Secondary':

                    q=1

            if hang > int(hang_list[7]) and hang < int(hang_list[8]):

              if num!=[]:

                if num[0].isdigit() and len(num) == 9:

                  g+=1

            if hang > int(hang_list[8]) and hang < int(hang_list[9]):

              if num!=[]:

                if num[0] == 'Summary':

                  state[n]=num[3]

                  n+=1

            if hang > int(hang_list[9]) and hang < int(hang_list[10]):

              if num!=[]:

                if len(num) >= 4 and num[1] == 'UP':

                  all+=1

            if hang > int(hang_list[10]) and hang < int(hang_list[12]):

              if num!=[]:

                if num[0] == 'rule':

                  rules+=1

            if hang > int(hang_list[12]) and hang < int(hang_list[13]):

              if num!=[]:

                if num[0].isdigit() and len(num) >5:

                  if num[3] != 'INFO':

                    level=1

            if hang > int(hang_list[13]) and hang < int(hang_list[14]):

              pass

            hang+=1

        temp.sort()

        mem.sort()

        if type == 0:

          worksheet0.write('G15',u'正常',format_rt)

        else:

          worksheet0.write('G15','ERROR',format_red)

        worksheet0.write('G17',u'%s-%s'%(temp[0],temp[-1]),format_rt)

        worksheet0.write('G19',None,format_rt)

        worksheet0.write('G20','%s-%s'%(mem[0],mem[-1]),format_rt)

        if status == 0:

          worksheet0.write('G21',u'正常',format_rt)

        else:

          worksheet0.write('G21',status,format_rt)

        if q == 0:

          worksheet0.write('G22',u'正常',format_rt)

        else:

          worksheet0.write('G22',u'',format_red)

        worksheet0.write('G23',g,format_rt)

        worksheet0.write('G24',state[0],format_rt)

        worksheet0.write('G25',all,format_rt)

        worksheet0.write('G26','%d'%rules,format_rt)

        if level == 1:

          worksheet0.write('G27','ERROR',format_red)

        else:

          worksheet0.write('G27',u'无告警',format_rt)

        worksheet0.write('G28',u'正常',format_right)

except IOError as reason:

    print '02DMZ-M9006.py '+str(reason)

#------------------------------------------------

#----------firewall_ip3----------------

#------------------------------------------------

try:

    hang=1

    state=dict()

    hang_list=cmd('<W-SM-M9006>',file_02_1)

    temp=[]

    rules=[]

    mem=[]

    g=0

    all=0

    n=0

    level=0

    q=0

    status=0

    type=0

    with open(file_02_1) as f:

        for each_line in f:

            num=each_line.split()

            if hang > int(hang_list[0]) and hang < int(hang_list[1]):

              if num!=[]:

                if num[0].isdigit() and len(num) == 7:

                  if num[3] == 'Absent':

                    if num[2] != 'NONE':

                      type=1

            if hang > int(hang_list[1]) and hang < int(hang_list[2]):

              if num!=[]:

                if len(num) == 13:

                  worksheet0.write('G30',u'%d天,%s小时'%(int(num[5])*7+int(num[7]),num[9]),format_rt)

            if hang > int(hang_list[2]) and hang < int(hang_list[3]):

              if num!=[]:

                if len(num) == 9:

                  temp.append(num[4])

            if hang > int(hang_list[3]) and hang < int(hang_list[4]):

              if num!=[]:

                if len(num) == 6:

                  total='%s KB %s KB)'%(num[0],num[3])

                  worksheet0.write('G32',total,format_rt)

            if hang > int(hang_list[4]) and hang < int(hang_list[5]):

              if num!=[]:

                if len(num) == 8:

                  if num[-1] != 'KB:':

                    result='%.1f%%'%(100-float(num[-1].split('%')[0]))

                    mem.append(result) 

            if hang > int(hang_list[5]) and hang < int(hang_list[6]):

              if num!=[]:

                if 'GigabitEthernet' in num[1]:

                  if num[2] != 'UP':

                    status=1

                if 'GigabitEthernet' in num[0]:

                  if num[1] != 'UP':

                    status=1

            if hang > int(hang_list[6]) and hang < int(hang_list[7]):

              if num!=[]:

                if num[0].isdigit() and len(num) == 5:

                  if num[3] != 'Primary' and  num[3] != 'Secondary':

                    q=1

            if hang > int(hang_list[7]) and hang < int(hang_list[8]):

              if num!=[]:

                if num[0].isdigit() and len(num) == 9:

                  g+=1

            if hang > int(hang_list[8]) and hang < int(hang_list[9]):

              if num!=[]:

                if num[0] == 'Summary':

                  state[n]=num[3]

                  n+=1

            if hang > int(hang_list[9]) and hang < int(hang_list[10]):

              if num!=[]:

                if len(num) >= 4 and num[1] == 'UP':

                  all+=1

            if hang > int(hang_list[10]) and hang < int(hang_list[12]):

              if num!=[]:

                if num[0] == 'Advanced':

                  rules.append(num[5])

            if hang > int(hang_list[12]) and hang < int(hang_list[13]):

              if num!=[]:

                if num[0].isdigit() and len(num) >5:

                  if num[3] != 'INFO':

                    level=1

            if hang > int(hang_list[13]) and hang < int(hang_list[14]):

              pass 

            hang+=1

        temp.sort()

        mem.sort()

        if type == 0:

          worksheet0.write('G29',u'正常',format_rt)

        else:

          worksheet0.write('G29','ERROR',format_red)

        worksheet0.write('G31',u'%s-%s'%(temp[0],temp[-1]),format_rt)

        worksheet0.write('G33',None,format_rt)

        worksheet0.write('G34','%s-%s'%(mem[0],mem[-1]),format_rt)

        if status == 0:

          worksheet0.write('G35',u'正常',format_rt)

        else:

          worksheet0.write('G35','ERROR',format_red)

        if q == 0:

          worksheet0.write('G36',u'正常',format_rt)

        else:

          worksheet0.write('G36',u'',format_red)

        worksheet0.write('G37',g,format_rt)

        worksheet0.write('G38',state[0],format_rt)

        worksheet0.write('G39',all,format_rt)

        worksheet0.write('G40','%s+%s=%d'%(rules[0],rules[1],int(rules[0])+int(rules[1])),format_rt)

        if level == 1:

          worksheet0.write('G41','ERROR',format_red)

        else:

          worksheet0.write('G41',u'无告警',format_rt)

        worksheet0.write('G42',u'正常',format_right)

except IOError as reason:

    print '03SM-M9006.py '+str(reason)

#------------------------------------------------

#----------firewall_ip4----------------

#------------------------------------------------

try:

    hang=1

    g=0

    hang_list=cmd('W-IN-FG3950-1 #',file_03)

    with open(file_03) as f:

        for each_line in f:

            num=each_line.split()

            if hang > int(hang_list[0]) and hang < int(hang_list[1]):

              if num!=[]:

                if num[0] == 'Memory':

                  worksheet0.write('G45',num[2],format_rt)

                if len(num) == 8 and num[1] == 'Uptime:':

                  worksheet0.write('G43',u'%s天,%s小时'%(num[2],num[4]),format_rt)

                if num[0] == 'Average':

                  if num[1] == 'network':

                    worksheet0.write('G46',num[-5],format_rt)

            if hang > int(hang_list[1]) and hang < int(hang_list[2]):

              if num!=[]:

                if num[0] == 'misc':

                  session_count=num[2].split('=')

                  setup_rate=num[3].split('=')

                  worksheet0.write('G47',session_count[-1],format_rt)

                  worksheet0.write('G48',setup_rate[-1],format_rt)

            if hang > int(hang_list[2]) and hang < int(hang_list[3]):

              if num!=[]:

                if 'S' in num[0] and len(num) >= 6:

                  g+=1

            hang+=1

        worksheet0.write('G51',g,format_rt)

        worksheet0.write('G44',None,format_rt)

        worksheet0.write('G49',None,format_rt)

        worksheet0.write('G50',None,format_rt)

        worksheet0.write('G52',None,format_rt)

        worksheet0.write('G53',None,format_rt)

        worksheet0.write('G54',None,format_right)

except IOError as reason:

    print '04IN-FG3950B.py '+str(reason)

#------------------------------------------------

#------------switch_ip5----------------

#------------switch_ip6----------------

#------------------------------------------------

try:

    for i in range(2):

      hang=1

      alarm=0

      state=0

      status=0

      alm=0

      temp_list=[]

      index={0:list(range(2,15)),1:list(range(15,28))}

      file='/usr/sh/shell/linux/xunjian/'+str(today)+'/0'+str(i+5)+'DMZ-S9306-'+str(i+1)+'.txt'

      hang_list=cmd('<JSYD-WX-12580-DMZ-9306-%d>'%(i+1),file)

      with open(file) as f:

          for each_line in f:

              num=each_line.split()

              if hang > int(hang_list[1]) and hang < int(hang_list[2]):

                if num!=[]:

                  if len(num) == 8 and num[1] == '-':

                    if num[-2] != 'Normal':

                      alarm=1

              if hang > int(hang_list[2]) and hang < int(hang_list[3]):

                if num!=[]:

                  if num[0] == 'Quidway':

                    worksheet1.write('G'+str(index[i][1]),u'%d, %s小时'%(int(num[7])*7+int(num[9]),num[11]),format_rt)

              if hang > int(hang_list[3]) and hang < int(hang_list[4]):

                if num!=[]:

                  if len(num) == 6 and num[1] == 'KB':

                    mem=num[0].split(',')

                    free=num[3].split(',')

                    worksheet1.write('G'+str(index[i][2]),'%s KB %s KB)'%(mem[0]+mem[1],free[0]+free[1]),format_rt)

              if hang > int(hang_list[4]) and hang < int(hang_list[5]):

                if num!=[]:

                  if len(num) == 6 and num[4] == 'Max:':

                    worksheet1.write('G'+str(index[i][3]),num[3],format_rt)

              if hang > int(hang_list[5]) and hang < int(hang_list[6]):

                if num!=[]:

                  if len(num) == 5 and num[0] == 'Memory':

                    worksheet1.write('G'+str(index[i][4]),num[-1],format_rt)

              if hang > int(hang_list[6]) and hang < int(hang_list[7]):

                if num!=[]:

                  if len(num) >=6 and num[1] == 'up':

                    state+=1

              if hang > int(hang_list[7]) and hang < int(hang_list[8]):

                if num!=[]:

                  if num[0].isdigit() and len(num) == 5:

                    if i == 0 and num[1] != 'Master':

                      status=1

                    if i == 1 and num[1] != 'Backup':

                      status=1

              if hang > int(hang_list[8]) and hang < int(hang_list[9]):

                if num!=[]:

                  if num[0] == 'Total':

                    worksheet1.write('G'+str(index[i][7]),num[-1],format_rt)

              if hang > int(hang_list[9]) and hang < int(hang_list[10]):

                if num!=[]:

                  if num[0] == 'Dynamic:':

                    worksheet1.write('G'+str(index[i][8]),num[1],format_rt)

              if hang > int(hang_list[10]) and hang < int(hang_list[11]):

                if num!=[]:

                  if num[0] == 'Destinations' and len(num) == 10:

                    worksheet1.write('G'+str(index[i][9]),num[2],format_rt)

              if hang > int(hang_list[11]) and hang < int(hang_list[12]):

                if num!=[]:

                  if len(num) >= 6 and num[-5].isdigit():

                    temp=num[-1].split('.')

                    temp_list.append(temp[0])

              if hang > int(hang_list[12]) and hang < int(hang_list[13]):

                if num!=[]:

                  if len(num) == 2 and num[0] == 'NO' and num[1] == 'alarm':

                    alm = 1

              if hang > int(hang_list[13]) and hang < int(hang_list[14]):

                if num!=[]:

                  pass

              hang+=1

          temp_list.sort()

          if alarm == 0:

            worksheet1.write('G'+str(index[i][0]),u'正常',format_rt)

          else:

            worksheet1.write('G'+str(index[i][0]),'ERROR',format_red)

          worksheet1.write('G'+str(index[i][5]),state,format_rt)

          if i == 0:

            if status == 0:

              worksheet1.write('G'+str(index[i][6]),'Master',format_rt)

            else:

              worksheet1.write('G'+str(index[i][6]),'No Master',format_red)

          else:

            if status == 0:

              worksheet1.write('G'+str(index[i][6]),'Backup',format_rt)

            else:

              worksheet1.write('G'+str(index[i][6]),'No Backup',format_red)

          worksheet1.write('G'+str(index[i][10]),u'%s-%s'%(temp_list[0],temp_list[-1]),format_rt)

          if alm == 1:

            worksheet1.write('G'+str(index[i][11]),u'无告警',format_rt)

          else:

            worksheet1.write('G'+str(index[i][11]),u'有告警',format_red)

          worksheet1.write('G'+str(index[i][12]),u'正常',format_right)

except IOError as reason:

    print '05_06DMZ-S9306.py '+str(reason)

#------------------------------------------------

#------------switch_ip7----------------

#------------switch_ip8----------------

#------------------------------------------------

try:

    fi_list=['07DMZ-S12508.txt']

    fi_name=['<W-DMZ-G1G2-12508>']

    state=[]

    for i in range(1):

      hang=1

      file='/usr/sh/shell/linux/xunjian/'+str(today)+'/'+fi_list[i]

      hang_list=cmd(fi_name[i],file)

      brd_status=['Master','Slave','Absent']

      brd=0

      link=0

      Master=0

      Backup=0

      count=[]

      temp=[]

      alarm=0

      status=0

      index={0:list(range(28,41))}

      with open(file) as f:

          for each_line in f:

              num=each_line.split()

              if hang > int(hang_list[1]) and hang < int(hang_list[2]):

                if num!=[]:

                  if num[0].isdigit() and len(num) == 4:

                    if num[2] not in brd_status:

                      brd=1

              if hang > int(hang_list[2]) and hang < int(hang_list[3]):

                if num!=[]:

                  if len(num) == 12:

                    worksheet1.write('G'+str(index[i][1]),u'%d, %s小时'%(int(num[4])*7+int(num[6]),num[8]),format_rt)

              if hang > int(hang_list[3]) and hang < int(hang_list[4]):

                if num!=[]:

                  if len(num) == 6 and num[1] == 'KB':

                    worksheet1.write('G'+str(index[i][2]),'%s KB %s KB)'%(num[0],num[3]),format_rt)

              if hang > int(hang_list[4]) and hang < int(hang_list[5]):

                if num!=[]:

                  if num[0] == 'Used':

                    worksheet1.write('G'+str(index[i][4]),num[-1],format_rt)

              if hang > int(hang_list[5]) and hang < int(hang_list[6]):

                if num!=[]:

                  if 'GigabitEthernet' in num[1]:

                    if num[2] != 'UP':

                      status+=1

                  if 'GigabitEthernet' in num[0]:

                    if num[1] != 'UP':

                      status+=1 

              if hang > int(hang_list[6]) and hang < int(hang_list[7]):

                if num!=[]:

                  if len(num) >=2 and num[1] == 'UP':

                    link+=1

                  #if num[0] == '----' and num[5] == 'UP':

                  #  link+=1

              if hang > int(hang_list[7]) and hang < int(hang_list[8]):

                if num!=[]:

                  if num[0].isdigit():

                    worksheet1.write('G'+str(index[i][7]),num[0],format_rt)

              if hang > int(hang_list[8]) and hang < int(hang_list[9]):

                if num!=[]:

                  if num[0] == 'Total' and num[-1].isdigit():

                    worksheet1.write('G'+str(index[i][8]),num[-1],format_rt)

              if hang > int(hang_list[9]) and hang < int(hang_list[11]):

                if num!=[]:

                  if num[0] == 'Summary' and num[-1].isdigit():

                    count.append(num[-1])

              if hang > int(hang_list[11]) and hang < int(hang_list[12]):

                pass

              if hang > int(hang_list[12]) and hang < int(hang_list[13]):

                if num!=[]:

                  if len(num) >= 8:

                    if num[3].isdigit():

                      temp.append(num[3])

                    if num[0] == '----' and num[1] == 'More':

                      temp.append(num[7])

              if hang > int(hang_list[13]) and hang < int(hang_list[14]):

                if num!=[]:

                  if num[0] == 'No' and num[1] == 'alarm':

                    alarm=1

              if hang > int(hang_list[14]) and hang < int(hang_list[15]):

                if num!=[]:

                  pass

              hang+=1

          temp.sort()

          if brd == 0:

            worksheet1.write('G'+str(index[i][0]),u'正常',format_rt)

          else:

            worksheet1.write('G'+str(index[i][0]),'ERROR',format_red)

          if status == 0:

            worksheet1.write('G'+str(index[i][5]),u'正常',format_rt)

          else:

            worksheet1.write('G'+str(index[i][5]),status,format_rt)

          worksheet1.write('G'+str(index[i][3]),None,format_rt)

          worksheet1.write('G'+str(index[i][6]),link,format_rt)

          worksheet1.write('G'+str(index[i][9]),int(count[1])+int(count[-2]),format_rt)

          worksheet1.write('G'+str(index[i][10]),u'%s-%s'%(temp[0],temp[-1]),format_rt)

          if alarm == 1:

            worksheet1.write('G'+str(index[i][11]),u'无告警',format_rt)

          else:

            worksheet1.write('G'+str(index[i][11]),'Error',format_red)

          worksheet1.write('G'+str(index[i][12]),u'正常',format_right)

except IOError as reason:

    print '07_08-S12508-01.py'+str(reason)

try:

    fi_list=['08IN-S12508.txt']

    fi_name=['<W-IN-G7G8-12508>']

    state=[]

    for i in range(1):

      hang=1

      file='/usr/sh/shell/linux/xunjian/'+str(today)+'/'+fi_list[i]

      hang_list=cmd(fi_name[i],file)

      brd_status=['Master','Slave','Absent']

      brd=0

      link=0

      Master=0

      Backup=0

      count=[]

      temp=[]

      alarm=0

      status=0

      index={0:list(range(41,53))}

      with open(file) as f:

          for each_line in f:

              num=each_line.split()

              if hang > int(hang_list[1]) and hang < int(hang_list[2]):

                if num!=[]:

                  if num[0].isdigit() and len(num) == 4:

                    if num[2] not in brd_status:

                      brd=1

              if hang > int(hang_list[2]) and hang < int(hang_list[3]):

                if num!=[]:

                  if len(num) == 12:

                    worksheet1.write('G'+str(index[i][1]),u'%d, %s小时'%(int(num[4])*7+int(num[6]),num[8]),format_rt)

              if hang > int(hang_list[3]) and hang < int(hang_list[4]):

                if num!=[]:

                  if len(num) == 6 and num[1] == 'KB':

                    worksheet1.write('G'+str(index[i][2]),'%s KB %s KB)'%(num[0],num[3]),format_rt)

              if hang > int(hang_list[4]) and hang < int(hang_list[5]):

                if num!=[]:

                  if num[0] == 'Used':

                    worksheet1.write('G'+str(index[i][4]),num[-1],format_rt)

              if hang > int(hang_list[5]) and hang < int(hang_list[6]):

                if num!=[]:

                  if 'GigabitEthernet' in num[1]:

                    if num[2] != 'UP':

                      status+=1

                  if 'GigabitEthernet' in num[0]:

                    if num[1] != 'UP':

                      status+=1

              if hang > int(hang_list[6]) and hang < int(hang_list[7]):

                if num!=[]:

                  if len(num) >=2 and num[1] == 'UP':

                    link+=1

                  #if num[0] == '----' and num[5] == 'UP':

                  #  link+=1

              if hang > int(hang_list[7]) and hang < int(hang_list[8]):

                if num!=[]:

                  if num[0].isdigit():

                    worksheet1.write('G'+str(index[i][7]),num[0],format_rt)

              if hang > int(hang_list[8]) and hang < int(hang_list[9]):

                if num!=[]:

                  if num[0] == 'Total' and num[-1].isdigit():

                    worksheet1.write('G'+str(index[i][8]),num[-1],format_rt)

              if hang > int(hang_list[9]) and hang < int(hang_list[10]):

                if num!=[]:

                  if len(num) >= 8:

                    if num[3].isdigit():

                      temp.append(num[3])

                    if num[0] == '----' and num[1] == 'More':

                      temp.append(num[7])

              if hang > int(hang_list[10]) and hang < int(hang_list[11]):

                if num!=[]:

                  if num[0] == 'No' and num[1] == 'alarm':

                    alarm=1

              if hang > int(hang_list[11]) and hang < int(hang_list[12]):

                if num!=[]:

                  pass

              hang+=1

          temp.sort()

          if brd == 0:

            worksheet1.write('G'+str(index[i][0]),u'正常',format_rt)

          else:

            worksheet1.write('G'+str(index[i][0]),'ERROR',format_red)

          if status == 0:

            worksheet1.write('G'+str(index[i][5]),u'正常',format_rt)

          else:

            worksheet1.write('G'+str(index[i][5]),status,format_rt)

          worksheet1.write('G'+str(index[i][3]),None,format_rt)

          worksheet1.write('G'+str(index[i][6]),link,format_rt)

          worksheet1.write('G'+str(index[i][9]),u'%s-%s'%(temp[0],temp[-1]),format_rt)

          if alarm == 1:

            worksheet1.write('G'+str(index[i][10]),u'无告警',format_rt)

          else:

            worksheet1.write('G'+str(index[i][10]),'Error',format_red)

          worksheet1.write('G'+str(index[i][11]),u'正常',format_right)

except IOError as reason:

    print '07_08-S12508-02.py'+str(reason)

#------------------------------------------------

#------------switch_ip9----------------

#------------switch_ip10----------------

#------------------------------------------------

try:

    fi_list=['09SM-N7K-1.txt','10SM-N7K-2.txt']

    fi_name=['W-SM-N7K-1#','W-SM-N7K-2#']

    state=[]

    for i in range(2):

      hang=1

      file='/usr/sh/shell/linux/xunjian/'+str(today)+'/'+fi_list[i]

      hang_list=cmd1(fi_name[i],file)

      index={0:list(range(53,66)),1:list(range(66,79))}

      count1 = 0

      count2 = 0

      count3 = 0

      temp = []

      with open(file) as f:

          for each_line in f:

              num=each_line.split()

              if hang > int(hang_list[0]) and hang < int(hang_list[1]):

                if num!=[]:

                  if num[1] == 'ok':

                    count1 +=1

              if hang > int(hang_list[1]) and hang < int(hang_list[2]):

                if num!=[]:

                  if num[0] == 'Kernel':

                    uptime = u'%s,%s小时'%(num[3],num[5])

              if hang > int(hang_list[2]) and hang < int(hang_list[3]):

                if num!=[]:

                  if len(num) == 3:

                    if num[-1] == 'free':

                      free = num[0]

                    if num[-1] == 'total':

                      total = num[0]

              if hang > int(hang_list[3]) and hang < int(hang_list[4]):

                if num!=[]:

                  if len(num) >= 3:

                    if num[2] == 'up' or num[4] == 'up' or num[5] == 'up':

                      count2 +=1

              if hang > int(hang_list[4]) and hang < int(hang_list[5]):

                if num!=[]:

                  pass

              if hang > int(hang_list[5]) and hang < int(hang_list[6]):

                if num!=[]:

                  if num[-1].isdigit():

                    count3 += int(num[-1])

              if hang > int(hang_list[6]) and hang < int(hang_list[7]):

                if num!=[]:

                  if num[-1].isdigit():

                    worksheet1.write('G'+str(index[i][8]),num[-1],format_rt) 

              if hang > int(hang_list[7]) and hang < int(hang_list[8]):

                if num!=[]:

                  if len(num) == 5 and num[-1].isdigit():

                    worksheet1.write('G'+str(index[i][9]),num[-1],format_rt)

              if hang > int(hang_list[8]) and hang < int(hang_list[9]):

                if num!=[]:

                  if len(num) >= 6 and num[-2].isdigit():

                    temp.append(num[-2])

              if hang > int(hang_list[9]) and hang < int(hang_list[10]):

                if num!=[]:

                  if len(num) >=4 and num[0].isdigit():

                    status = num[2]

              if hang > int(hang_list[10]) and hang < int(hang_list[11]):

                if num!=[]:

                  pass

              hang+=1

          temp.sort()

          worksheet1.write('G'+str(index[i][0]),count1,format_rt)   

          worksheet1.write('G'+str(index[i][1]),uptime,format_rt)

          worksheet1.write('G'+str(index[i][2]),'%s KB (%s KB)'%(total,free),format_rt)

          worksheet1.write('G'+str(index[i][3]),None,format_rt)

          worksheet1.write('G'+str(index[i][4]),None,format_rt)

          worksheet1.write('G'+str(index[i][5]),count2,format_rt)

          worksheet1.write('G'+str(index[i][6]),None,format_rt)

          worksheet1.write('G'+str(index[i][7]),count3,format_rt)

          worksheet1.write('G'+str(index[i][10]),u'%s-%s'%(temp[0],temp[-1]),format_rt)

          if status == 'up':

            worksheet1.write('G'+str(index[i][11]),u'正常',format_rt)

          else:

            worksheet1.write('G'+str(index[i][11]),u'不正常',format_red)

          worksheet1.write('G'+str(index[i][12]),u'正常',format_right)

except Exception as reason:

    print '09_10SM-N7K.py '+str(reason)

#------------------------------------------------

#------------route_ip11----------------

#------------route_ip12----------------

#------------------------------------------------

try:

    fi_list=['11DMZ-NE40E-1.txt','12DMZ-NE40E-2.txt']

    fi_name=['<W-SM-E11-NE40E-01>','<W-SM-E12-NE40E-02>']

    device=['dis','NE40E-X8\'s','Slot','-']

    status=0

    for i in range(2):

      hang=1

      phy=0

      temp=[]

      alarm=0

      index={0:list(range(2,12)),1:list(range(12,22))}

      file='/usr/sh/shell/linux/xunjian/'+str(today)+'/'+fi_list[i]

      hang_list=cmd(fi_name[i],file)

      with open(file) as f:

          for each_line in f:

              num=each_line.split()

              if hang > int(hang_list[0]) and hang < int(hang_list[1]):

                if num!=[]:

                  if num[0] not in device:

                    status=1

              if hang > int(hang_list[1]) and hang < int(hang_list[2]):

                if num!=[]:

                  if num[0] == 'HUAWEI':

                    worksheet2.write('G'+str(index[i][1]),u'%s天,%s小时'%(num[4],num[6]),format_rt)

              if hang > int(hang_list[2]) and hang < int(hang_list[3]):

                if num!=[]:

                  if ',' in num[0]:

                    total=num[0].replace(',','')+' KB '+num[3].replace(',','')+' KB)'

                    worksheet2.write('G'+str(index[i][2]),total,format_rt)

              if hang > int(hang_list[3]) and hang < int(hang_list[4]):

                if num!=[]:

                  if num[0] == 'Memory' and len(num) == 5:

                    worksheet2.write('G'+str(index[i][4]),num[-1],format_rt)

              if hang > int(hang_list[4]) and hang < int(hang_list[5]):

                if num!=[]:

                  if len(num) == 7 and num[1] == 'up':

                    phy+=1

              if hang > int(hang_list[5]) and hang < int(hang_list[6]):

                if num!=[]:

                  if num[0] == 'Destinations' and len(num) == 10:

                    worksheet2.write('G'+str(index[i][6]),num[2],format_rt)

              if hang > int(hang_list[6]) and hang < int(hang_list[7]):

                if num!=[]:

                  if len(num) >= 7 and num[-1].isdigit():

                    temp.append(num[-1])

              if hang > int(hang_list[7]) and hang < int(hang_list[8]):

                if num!=[]:

                  if num[0] == 'NO' and num[1] == 'alarm':

                    alarm=1

              if hang > int(hang_list[8]) and hang < int(hang_list[9]):

                if num!=[]:

                  pass

              hang+=1

          temp.sort()

          if status == 0:

            worksheet2.write('G'+str(index[i][0]),u'正常',format_rt) 

          else:

            worksheet2.write('G'+str(index[i][0]),'Error',format_red)

          worksheet2.write('G'+str(index[i][3]),None,format_rt)

          worksheet2.write('G'+str(index[i][5]),phy,format_rt)

          worksheet2.write('G'+str(index[i][7]),u'%s-%s'%(temp[0],temp[-1]),format_rt)

          if alarm == 1:

            worksheet2.write('G'+str(index[i][8]),u'无告警',format_rt)

          else:

            worksheet2.write('G'+str(index[i][8]),'Error',format_red)

          worksheet2.write('G'+str(index[i][9]),u'正常',format_right)

except IOError as reason:

    print '11_12.py '+str(reason)

#------------------------------------------------

#------------fuzai_ip13-----------------

#------------fuzai_ip14-----------------

#------------fuzai_ip15-----------------

#------------fuzai_ip16-----------------

#------------------------------------------------

try:

    fi_list=['13DMZ-RD5412-1.txt','14DMZ-RD5412-2.txt','15SM-RD6420-1.txt','16SM-RD6420-2.txt']

    fi_name='>> '

    state=[]

    for i in range(4):

      hang=1

      status=0

      link=0

      temp=[]

      Master=0

      Backup=0

      index={0:list(range(2,12)),1:list(range(12,22)),2:list(range(22,32)),3:list(range(32,42))}

      file='/usr/sh/shell/linux/xunjian/'+str(today)+'/'+fi_list[i]

      hang_list=cmd(fi_name,file)

      with open(file) as f:

          for each_line in f:

              num=each_line.split()

              if hang > int(hang_list[0]) and hang < int(hang_list[1]):

                if num!=[]:

                  if num[0] == 'Switch':

                    worksheet3.write('G'+str(index[i][0]),u'%s天,%s'%(num[3],num[5]),format_rt) 

              if hang > int(hang_list[1]) and hang < int(hang_list[2]):

                if num!=[]:

                  if num[0] == 'Dual':

                    if num[-1] == 'OK':

                      worksheet3.write('G'+str(index[i][1]),u'正常',format_rt)

                    else:

                      worksheet3.write('G'+str(index[i][1]),'Error',format_red)

              if hang > int(hang_list[2]) and hang < int(hang_list[3]):

                if num!=[]:

                  if num[0].isdigit() and len(num) == 3:

                    if num[-1] != 'Operational':

                      status=1

              if hang > int(hang_list[3]) and hang < int(hang_list[4]):

                if num!=[]:

                  if num[0].isdigit() and len(num) == 7:

                    if num[-1] == 'up':

                      link+=1

              if hang > int(hang_list[4]) and hang < int(hang_list[5]):

                if num!=[]:

                  if num[0] == 'Real' and num[1] == 'Servers' and len(num) == 4:

                    Real_Servers=num[-1].split('(')[-1].split(')')[0]

                  if num[0] == 'Server' and num[1] == 'Groups' and len(num) == 4:

                    Server_Groups=num[-1]

                  if num[0] == 'Virtual' and num[1] == 'Servers' and len(num) == 4:

                    Virtual_Servers=num[-1].split('(')[-1].split(')')[0]

                  if num[0] == 'Filters' and len(num) == 3:

                    Filters=num[-1].split('(')[-1].split(')')[0]

              if hang > int(hang_list[5]) and hang < int(hang_list[6]):

                if num!=[]:

                  if num[0] == 'cpuUtil1Second:':

                    worksheet3.write('G'+str(index[i][5]),num[-1],format_rt)

              if hang > int(hang_list[6]) and hang < int(hang_list[7]):

                if num!=[]:

                  if num[0] == 'Total:':

                    Total=int(num[-2])

                  if num[0] == 'Free:':

                    Free=int(num[-2])

              if hang > int(hang_list[7]) and hang < int(hang_list[8]):

                if num!=[]:

                  if num[0] == 'Sensor' and len(num) == 6:

                    temp.append(num[3]) 

              if hang > int(hang_list[8]) and hang < int(hang_list[9]):

                if num!=[]:

                  if len(num) == 10:

                    if num[-1] == 'master':

                      Master+=1

                    if num[-1] == 'backup':

                      Backup+=1

              if hang > int(hang_list[9]) and hang < int(hang_list[10]):

                if num!=[]:

                  pass

              hang+=1

          state.append(Master)

          state.append(Backup)

          if status == 0:

            worksheet3.write('G'+str(index[i][2]),u'正常',format_rt)

          else:

            worksheet3.write('G'+str(index[i][2]),'Error',format_red)

          worksheet3.write('G'+str(index[i][3]),link,format_rt)

          worksheet3.write('G'+str(index[i][4]),'%s/%s/%s/%s'%(Real_Servers,Server_Groups,Virtual_Servers,Filters),format_rt)

          worksheet3.write('G'+str(index[i][6]),'%.2f%%'%(float(Total-Free)/Total*100),format_rt)

          worksheet3.write('G'+str(index[i][7]),temp[0],format_rt)

          worksheet3.write('G'+str(index[i][9]),u'正常',format_right)

    if state[0] == state[3]:

      worksheet3.write('G10','master',format_rt)

      worksheet3.write('G20','backup',format_rt)

    else:

      worksheet3.write('G10','Error',format_red)

      worksheet3.write('G20','Error',format_red)

    if state[4] == state[-1]:

      worksheet3.write('G30','master',format_rt)

      worksheet3.write('G40','backup',format_rt)

    else:

      worksheet3.write('G30','Error',format_red)

      worksheet3.write('G40','Error',format_red)

except IOError as reason:

    print '13_16-RD5412-6420.py'+str(reason)

workbook.close()

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
MFC中CString的Format方法使用技巧
2. 输入输出
c++ MFC int 转换成 CString
【Python自学记】3.Python容器使用入门
vsnprintf()函数 & vfprintf()函数
自定义函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服