RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Python對(duì)交換機(jī)進(jìn)行自動(dòng)化巡檢?

網(wǎng)絡(luò)技術(shù)干貨圈 ? 來(lái)源:網(wǎng)絡(luò)技術(shù)干貨圈 ? 2023-01-15 15:33 ? 次閱讀

概述

腳本功能功能是全程模擬了人的手工巡檢,并收集數(shù)據(jù),處理后發(fā)送郵件。主要分為遠(yuǎn)程到交換機(jī),查看轉(zhuǎn)換機(jī)狀態(tài)如:show process cpu | in CPU utilization查看cpu占用率;將查詢后的結(jié)果記錄并保存下來(lái),如結(jié)果;11%;讀取查詢的數(shù)據(jù)文件;將文件中的數(shù)據(jù)如11%提取部分需要計(jì)算出來(lái);創(chuàng)建excel表格,將上一步獲取到的數(shù)據(jù)填寫(xiě)到表格中;編寫(xiě)固定格式的郵件內(nèi)容,并將保存好的excel表格附到郵件中發(fā)送;編寫(xiě)crontab定時(shí)任務(wù),實(shí)現(xiàn)全程自動(dòng)化。

流程圖

ba0e9466-94a4-11ed-bfe3-dac502259ad0.png
'''
Author:myfu
Date:2019-08-26
E-mail:myfu@****.com

'''

importpexpect
importsys
importtime
importos
importxlwt
defcisco_check():
ip=["10.3.240.14","10.3.240.15","10.3.240.17","10.3.240.20","10.3.240.21"]
name=["SZNS-KJY4F-ACS-05#","SZNS-KJY4F-ACS-06#","SZNS-KJY4F-ACS-08#","SZNS-KJY9F-ACS-11#","SZNS-KJY9F-ACS-12#"]
stat_time=time.time()
stru_time=time.localtime(stat_time)
strf_time=time.strftime("%Y-%m-%d")
foriinrange(0,len(ip)):
child=pexpect.spawn('sshfumy@%s'%ip[i])
fout=open('/root/switch_check/%s.txt'%(name[i][:-1]),'wb+')
child.logfile=fout
ifip[i]=="10.3.240.21":
child.expect("fumy@10.3.240.21'spassword:")
else:
child.expect('password:')
child.sendline("你自己的密碼")
child.expect("%s"%name[i])
child.sendline("shenvpower")
child.expect("%s"%name[i])
child.sendline("showprocesscpu|inCPUutilization")
child.expect("%s"%name[i])
child.sendline("shversion|inuptime")
child.expect("%s"%name[i])
child.sendline("showprocessesmemory|inUsed")
child.expect("%s"%name[i])
child.sendline("shenvfan")
child.expect("%s"%name[i])
child.sendline("shlog|inConsolelogging")
child.expect("%s"%name[i])
child.sendline("exit")
time.sleep(3)

file_list=os.listdir("/root/switch_check")

withopen("/root/switch_check/%s"%file_list[0])asf1:
foriinf1:
if"POWER"ini:
power1=i[8:].strip()
if"CPUutilization"ini:
cpu1=i[72:].strip()
if"%suptimeis"%file_list[0][:-4]ini:
uptime1="".join(i[27:].strip().split(","))
if"ProcessorPoolTotal:"ini:
memory1="%.2f%%"%((int(i[38:50].strip())/int(i[21:33].strip()))*100)
if"FANis"ini:
fan1=i[6:].strip()
if"leveldebugging"ini:
log1=i[37:43].strip()

withopen("/root/switch_check/%s"%file_list[1])asf2:
foriinf2:
if"POWER"ini:
power2=i[8:].strip()
if"CPUutilization"ini:
cpu2=i[72:].strip()
if"%suptimeis"%file_list[1][:-4]ini:
uptime2="".join(i[27:].strip().split(","))
if"ProcessorPoolTotal:"ini:
memory2="%.2f%%"%((int(i[38:50].strip())/int(i[21:33].strip()))*100)
if"FANis"ini:
fan2=i[6:].strip()
if"leveldebugging"ini:
log2=i[37:43].strip()

withopen("/root/switch_check/%s"%file_list[2])asf3:
foriinf3:
if"POWER"ini:
power3=i[8:].strip()
if"CPUutilization"ini:
cpu3=i[72:].strip()
if"%suptimeis"%file_list[2][:-4]ini:
uptime3="".join(i[27:].strip().split(","))
if"ProcessorPoolTotal:"ini:
memory3="%.2f%%"%((int(i[38:50].strip())/int(i[21:33].strip()))*100)
if"FANis"ini:
fan3=i[6:].strip()
if"leveldebugging"ini:
log3=i[37:43].strip()

withopen("/root/switch_check/%s"%file_list[3])asf4:
foriinf4:
if"POWER"ini:
power4=i[24:].strip()
if"CPUutilization"ini:
cpu4=i[72:].strip()
if"%suptimeis"%file_list[3][:-4]ini:
uptime4="".join(i[27:].strip().split(","))
if"Total:"ini:
memory4="%.2f%%"%((int(i[21:29].strip())/int(i[6:14].strip()))*100)
if"FANis"ini:
fan4=i[6:].strip()
if"leveldebugging"ini:
log4=i[37:45].strip()


withopen("/root/switch_check/%s"%file_list[4])asf5:
foriinf5:
if"POWER"ini:
power5=i[24:].strip()
if"CPUutilization"ini:
cpu5=i[72:].strip()
if"%suptimeis"%file_list[4][:-4]ini:
uptime5="".join(i[27:].strip().split(","))
if"Total:"ini:
memory5="%.2f%%"%((int(i[21:29].strip())/int(i[6:14].strip()))*100)
if"FANis"ini:
fan5=i[6:].strip()
if"leveldebugging"ini:
log5=i[37:44].strip()

workbook=xlwt.Workbook(encoding='utf-8')
cisco=workbook.add_sheet('深圳網(wǎng)絡(luò)設(shè)備巡檢')

style=xlwt.XFStyle()
pattern=xlwt.Pattern()
pattern.pattern=xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour=xlwt.Style.colour_map['red']
style.pattern=pattern
borders=xlwt.Borders()
borders.left=1
borders.right=1
borders.top=1
borders.bottom=1
style.borders=borders
al=xlwt.Alignment()
al.horz=0x02
al.vert=0x01
style.alignment=al

style1=xlwt.XFStyle()
borders=xlwt.Borders()
borders.left=1
borders.right=1
borders.top=1
borders.bottom=1
style1.borders=borders
al=xlwt.Alignment()
al.horz=0x02
al.vert=0x01
style1.alignment=al

style3=xlwt.XFStyle()
borders=xlwt.Borders()
borders.left=1
borders.right=1
borders.top=1
borders.bottom=1
style3.borders=borders
al=xlwt.Alignment()
al.horz=0x02
al.vert=0x01
style3.alignment=al

first_col=cisco.col(0)
sec_col=cisco.col(1)
thr_col=cisco.col(2)
for_col=cisco.col(3)
first_col.width=200*25
sec_col.width=120*25
thr_col.width=120*25
for_col.width=320*25

cisco.write(0,0,'設(shè)備名稱',style)
cisco.write(0,1,'管理地址',style)
cisco.write(0,2,'檢查項(xiàng)',style)
cisco.write(0,3,'檢查結(jié)果',style)
cisco.write_merge(1,6,0,0,'%s'%file_list[0][:-4],style3)
cisco.write_merge(1,6,1,1,'%s'%ip[0],style3)
cisco.write(1,2,'電源狀態(tài)',style1)
cisco.write(2,2,'cpu使用率',style1)
cisco.write(3,2,'運(yùn)行時(shí)間',style1)
cisco.write(4,2,'內(nèi)存使用率',style1)
cisco.write(5,2,'風(fēng)扇狀態(tài)',style1)
cisco.write(6,2,'日志條目',style1)
cisco.write(1,3,power1,style3)
cisco.write(2,3,cpu1,style3)
cisco.write(3,3,uptime1,style3)
cisco.write(4,3,memory1,style3)
cisco.write(5,3,fan1,style3)
cisco.write(6,3,log1,style3)

cisco.write_merge(7,12,0,0,'%s'%file_list[1][:-4],style3)
cisco.write_merge(7,12,1,1,'%s'%ip[1],style3)
cisco.write(7,2,'電源狀態(tài)',style1)
cisco.write(8,2,'cpu使用率',style1)
cisco.write(9,2,'運(yùn)行時(shí)間',style1)
cisco.write(10,2,'內(nèi)存使用率',style1)
cisco.write(11,2,'風(fēng)扇狀態(tài)',style1)
cisco.write(12,2,'日志條目',style1)
cisco.write(7,3,power2,style3)
cisco.write(8,3,cpu2,style3)
cisco.write(9,3,uptime2,style3)
cisco.write(10,3,memory2,style3)
cisco.write(11,3,fan2,style3)
cisco.write(12,3,log2,style3)

cisco.write_merge(13,18,0,0,'%s'%file_list[2][:-4],style3)
cisco.write_merge(13,18,1,1,'%s'%ip[2],style3)
cisco.write(13,2,'電源狀態(tài)',style1)
cisco.write(14,2,'cpu使用率',style1)
cisco.write(15,2,'運(yùn)行時(shí)間',style1)
cisco.write(16,2,'內(nèi)存使用率',style1)
cisco.write(17,2,'風(fēng)扇狀態(tài)',style1)
cisco.write(18,2,'日志條目',style1)
cisco.write(13,3,power3,style3)
cisco.write(14,3,cpu3,style3)
cisco.write(15,3,uptime3,style3)
cisco.write(16,3,memory3,style3)
cisco.write(17,3,fan3,style3)
cisco.write(18,3,log3,style3)

cisco.write_merge(19,24,0,0,'%s'%file_list[3][:-4],style3)
cisco.write_merge(19,24,1,1,'%s'%ip[3],style3)
cisco.write(19,2,'電源狀態(tài)',style1)
cisco.write(20,2,'cpu使用率',style1)
cisco.write(21,2,'運(yùn)行時(shí)間',style1)
cisco.write(22,2,'內(nèi)存使用率',style1)
cisco.write(23,2,'風(fēng)扇狀態(tài)',style1)
cisco.write(24,2,'日志條目',style1)
cisco.write(19,3,power4,style3)
cisco.write(20,3,cpu4,style3)
cisco.write(21,3,uptime4,style3)
cisco.write(22,3,memory4,style3)
cisco.write(23,3,fan4,style3)
cisco.write(24,3,log4,style3)

cisco.write_merge(25,30,0,0,'%s'%file_list[4][:-4],style3)
cisco.write_merge(25,30,1,1,'%s'%ip[4],style3)
cisco.write(25,2,'電源狀態(tài)',style1)
cisco.write(26,2,'cpu使用率',style1)
cisco.write(27,2,'運(yùn)行時(shí)間',style1)
cisco.write(28,2,'內(nèi)存使用率',style1)
cisco.write(29,2,'風(fēng)扇狀態(tài)',style1)
cisco.write(30,2,'日志條目',style1)
cisco.write(25,3,power5,style3)
cisco.write(26,3,cpu5,style3)
cisco.write(27,3,uptime5,style3)
cisco.write(28,3,memory5,style3)
cisco.write(29,3,fan5,style3)
cisco.write(30,3,log5,style3)

workbook.save('SZ_NDC_%s.xls'%strf_time)

os.system("mail-a/root/python/SZ_NDC_%s.xls-scheck_test你的郵箱%strf_time)

os.system("find/root/python/-typef-mtime+15-name'SZ_NDC_*'|xargs
m-f")

cisco_check()

mail.txt中的內(nèi)容即郵件內(nèi)容:

各位好:



巡檢結(jié)果詳情請(qǐng)看附件。









ps:本郵件由系統(tǒng)自動(dòng)發(fā)送,如有任何問(wèn)題請(qǐng)聯(lián)系***





BestWishes

郵件配置

/etc/mail.rc

setfrom=郵箱地址smtp=郵箱服務(wù)器smtp-auth-user=郵箱用戶名smtp-auth-password=密碼smtp-auth=login

定時(shí)任務(wù)

crontab-e

0017**5/usr/bin/python3/root/python/switch_check.py>/dev/null2>&1#每周五下午5點(diǎn)巡檢

最終效果

ba256b1e-94a4-11ed-bfe3-dac502259ad0.png


審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 自動(dòng)化
    +關(guān)注

    關(guān)注

    29

    文章

    5562

    瀏覽量

    79239
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4792

    瀏覽量

    84627
  • 腳本
    +關(guān)注

    關(guān)注

    1

    文章

    389

    瀏覽量

    14858

原文標(biāo)題:如何使用Python對(duì)交換機(jī)進(jìn)行自動(dòng)化巡檢?聰明的網(wǎng)工已經(jīng)收藏了!

文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    工業(yè)交換機(jī)的認(rèn)證

    在當(dāng)今工業(yè)自動(dòng)化與信息技術(shù)快速發(fā)展的背景下,工業(yè)交換機(jī)作為網(wǎng)絡(luò)連接的重要設(shè)備,扮演著不可或缺的角色。它不僅能夠提高網(wǎng)絡(luò)的傳輸效率,還能在復(fù)雜的工業(yè)環(huán)境中,確保數(shù)據(jù)的可靠傳輸。因此,工業(yè)交換機(jī)的認(rèn)證問(wèn)題顯得尤為重要。
    的頭像 發(fā)表于 10-10 14:38 ?179次閱讀

    利用Python腳本登錄到交換機(jī)并創(chuàng)建VLAN

    本文將詳細(xì)介紹如何利用Python腳本登錄到交換機(jī)并創(chuàng)建VLAN。
    的頭像 發(fā)表于 08-12 17:59 ?575次閱讀

    使用Python腳本備份華為交換機(jī)的配置信息

    在現(xiàn)代網(wǎng)絡(luò)管理中,備份交換機(jī)的配置信息是一項(xiàng)至關(guān)重要的任務(wù)。備份可以確保在交換機(jī)發(fā)生故障或配置錯(cuò)誤時(shí),能夠迅速恢復(fù)到之前的工作狀態(tài)。本文將詳細(xì)介紹如何使用Python腳本備份華為交換機(jī)
    的頭像 發(fā)表于 08-12 17:50 ?550次閱讀
    使用<b class='flag-5'>Python</b>腳本備份華為<b class='flag-5'>交換機(jī)</b>的配置信息

    BIAME汽車(chē)制博會(huì)看智能制造未來(lái),光路科技Auto Pro工控自動(dòng)化交換機(jī)與全國(guó)產(chǎn)TSN交換機(jī)展現(xiàn)非凡實(shí)力

    第十三屆北京國(guó)際汽車(chē)制造業(yè)博覽會(huì)(BIAME)及同期舉辦的智能工廠與自動(dòng)化工業(yè)裝配展覽會(huì)圓滿結(jié)束,為業(yè)界呈現(xiàn)了一場(chǎng)汽車(chē)與智能制造的盛會(huì),促進(jìn)了“汽車(chē)+新能源+零部件+智造”領(lǐng)域的深入交流與合作。光路科技在展會(huì)上帶來(lái)的Auto Pro工業(yè)自動(dòng)化
    的頭像 發(fā)表于 08-08 17:48 ?672次閱讀
    BIAME汽車(chē)制博會(huì)看智能制造未來(lái),光路科技Auto Pro工控<b class='flag-5'>自動(dòng)化</b><b class='flag-5'>交換機(jī)</b>與全國(guó)產(chǎn)TSN<b class='flag-5'>交換機(jī)</b>展現(xiàn)非凡實(shí)力

    網(wǎng)管型交換機(jī)和非網(wǎng)管型交換機(jī)的區(qū)別

    管理軟件進(jìn)行配置和管理。它通常具有更多的功能和更高的性能,可以滿足大型網(wǎng)絡(luò)的需求。 非網(wǎng)管型交換機(jī)(Unmanaged Switch)是一種沒(méi)有網(wǎng)絡(luò)管理功能的交換機(jī),不能通過(guò)軟件進(jìn)行
    的頭像 發(fā)表于 08-05 15:41 ?2609次閱讀

    如何提高工業(yè)交換機(jī)的電源功耗

    工業(yè)交換機(jī)的電源功耗是指在工作狀態(tài)下所消耗的能量。隨著工業(yè)自動(dòng)化技術(shù)的發(fā)展,工業(yè)交換機(jī)在生產(chǎn)和制造領(lǐng)域中扮演著至關(guān)重要的角色。它們通過(guò)連接各種設(shè)備和系統(tǒng),實(shí)現(xiàn)信息的傳輸和處理,提高生產(chǎn)效率和質(zhì)量
    的頭像 發(fā)表于 06-27 14:06 ?239次閱讀

    園區(qū)交換機(jī) VS 數(shù)據(jù)中心交換機(jī)

    園區(qū)交換機(jī)和數(shù)據(jù)中心交換機(jī)交換機(jī)領(lǐng)域的兩大類別,很多人都很熟悉。但是,這兩者之間的區(qū)別并不是很清楚。在本文中,我們將對(duì)園區(qū)交換機(jī)和數(shù)據(jù)中心交換機(jī)
    的頭像 發(fā)表于 06-24 15:33 ?600次閱讀
    園區(qū)<b class='flag-5'>交換機(jī)</b> VS 數(shù)據(jù)中心<b class='flag-5'>交換機(jī)</b>

    工業(yè)交換機(jī)的特點(diǎn)和作用

      隨著工業(yè)自動(dòng)化和智能的快速發(fā)展,工業(yè)交換機(jī)作為工業(yè)通信領(lǐng)域的重要設(shè)備,其地位和作用日益凸顯。工業(yè)交換機(jī)不僅為工業(yè)自動(dòng)化提供了穩(wěn)定、可靠
    的頭像 發(fā)表于 06-06 11:52 ?1224次閱讀

    工業(yè)交換機(jī)的組網(wǎng)方式

      隨著工業(yè)自動(dòng)化水平的不斷提升,工業(yè)交換機(jī)作為連接各種工業(yè)設(shè)備、實(shí)現(xiàn)數(shù)據(jù)通信的關(guān)鍵設(shè)備,其組網(wǎng)方式的選擇對(duì)于整個(gè)工業(yè)網(wǎng)絡(luò)的性能和穩(wěn)定性具有至關(guān)重要的影響。本文將詳細(xì)介紹工業(yè)交換機(jī)的組網(wǎng)方式,并結(jié)合相關(guān)數(shù)字和信息,對(duì)這些組網(wǎng)方式
    的頭像 發(fā)表于 06-06 11:52 ?625次閱讀

    工業(yè)自動(dòng)化:PROFINET網(wǎng)絡(luò)技術(shù)解析與Auto Pro工業(yè)交換機(jī)應(yīng)用實(shí)踐

    提供了理想的通信解決方案。兼容PROFINET的Auto Pro工業(yè)交換機(jī),解決了自動(dòng)化設(shè)備間的兼容問(wèn)題,還通過(guò)優(yōu)化網(wǎng)絡(luò)架構(gòu)和傳輸技術(shù),確保了數(shù)據(jù)的高效、穩(wěn)定傳輸,
    的頭像 發(fā)表于 05-17 17:38 ?901次閱讀
    工業(yè)<b class='flag-5'>自動(dòng)化</b>:PROFINET網(wǎng)絡(luò)技術(shù)解析與Auto Pro工業(yè)<b class='flag-5'>交換機(jī)</b>應(yīng)用實(shí)踐

    工業(yè)網(wǎng)絡(luò)交換機(jī)引領(lǐng)現(xiàn)代工廠自動(dòng)化新潮流

    隨著科技的飛速發(fā)展,現(xiàn)代工廠正迎來(lái)一場(chǎng)前所未有的自動(dòng)化變革,而工業(yè)網(wǎng)絡(luò)交換機(jī)的嶄新角色正是這場(chǎng)變革的關(guān)鍵組成部分。本文將深入探討工業(yè)網(wǎng)絡(luò)交換機(jī)與現(xiàn)代工廠自動(dòng)化的緊密集成,探討這一集成如
    的頭像 發(fā)表于 02-06 10:31 ?689次閱讀

    交換機(jī)的作用與功能 交換機(jī)的基本配置

    交換機(jī)(Switch)是計(jì)算機(jī)網(wǎng)絡(luò)中常見(jiàn)的一種數(shù)據(jù)通信設(shè)備,它用于在局域網(wǎng)(LAN)內(nèi)的不同設(shè)備之間進(jìn)行數(shù)據(jù)的轉(zhuǎn)發(fā)和交換。交換機(jī)通過(guò)學(xué)習(xí)和轉(zhuǎn)發(fā)數(shù)據(jù)幀的方式來(lái)實(shí)現(xiàn)多個(gè)設(shè)備之間的通信,并且
    的頭像 發(fā)表于 02-04 09:17 ?1.7w次閱讀

    匯聚交換機(jī)和核心交換機(jī)區(qū)別

    匯聚交換機(jī)和核心交換機(jī)是網(wǎng)絡(luò)中常見(jiàn)的兩種交換機(jī)設(shè)備,在網(wǎng)絡(luò)中扮演著不同的角色和功能。雖然它們的主要目標(biāo)是提供高速、高效的數(shù)據(jù)交換和數(shù)據(jù)傳輸,但在設(shè)計(jì)和使用上有一些區(qū)別。本文將介紹匯聚
    的頭像 發(fā)表于 01-22 14:32 ?4411次閱讀

    使用python批量備份華為交換機(jī)配置文件

    保證PC能分別和五臺(tái)交換機(jī)通信。五臺(tái)交換機(jī)的IP地址如圖上所示。
    的頭像 發(fā)表于 01-19 09:28 ?1405次閱讀
    使用<b class='flag-5'>python</b>批量備份華為<b class='flag-5'>交換機(jī)</b>配置文件

    工業(yè)POE交換機(jī):點(diǎn)亮燈光控制與建筑自動(dòng)化的新時(shí)代

    隨著科技的不斷發(fā)展,燈光控制和建筑自動(dòng)化在現(xiàn)代建筑中扮演著重要角色。而工業(yè)POE交換機(jī)作為一種創(chuàng)新的網(wǎng)絡(luò)設(shè)備,不僅能夠?yàn)闊艄饪刂坪徒ㄖ?b class='flag-5'>自動(dòng)化提供穩(wěn)定可靠的網(wǎng)絡(luò)通信,還具備便捷的供電功能。本文將探討工業(yè)POE
    的頭像 發(fā)表于 01-17 09:26 ?544次閱讀
    RM新时代网站-首页