前言
因?yàn)橛屑s200臺(tái)的網(wǎng)絡(luò)設(shè)備需要每天登錄巡檢、查看配置、保存配置、定期更改密碼(每周改一次),如果都手動(dòng)去登錄、配置將是非常耗費(fèi)時(shí)間和人力的,所以就有了整理出腳本的想法。查看了網(wǎng)上大多是VBS編寫(xiě)的腳本,我對(duì)VBS不熟悉,剛好前段時(shí)間初步學(xué)習(xí)了Python,就想用Python整理一些自己需要的腳本。
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
一、腳本主要功能
自動(dòng)的逐臺(tái)登錄設(shè)備,并執(zhí)行相關(guān)命令;
記錄屏幕輸出并保存到TXT文件中,將TXT文件以設(shè)備名、設(shè)備IP、時(shí)間命名。
二、腳本示例
#$language="python" #$interface="1.0" importtime importos importcsv user='admin' passwd='huawei@123' #定義一個(gè)變量,名為current_time,把當(dāng)前PC的時(shí)間格式化后賦值給該變量 current_time=time.strftime('%Y-%m-%d-%H-%M-%S',time.localtime(time.time())) defmain(): #設(shè)置CRT的屏幕同步屬性為False。具體作用自行百度。 crt.Screen.Synchronous=False #通過(guò)withopen打開(kāi)ip.txt文件,獲取文件中的所有IP地址。txt文件中一個(gè)IP占用一行。 withopen('ip.txt','r')asrfile: host_list=rfile.readlines() forhostinhost_list: #由于readlines()方法在獲取txt中的IP時(shí),會(huì)把換行符讀取出來(lái),賦值給host_list變量時(shí)IP地址后邊跟了“ ”導(dǎo)致CRT無(wú)法讀取爭(zhēng)取的IP,所以使用split()方法分割字符串,獲取正確的IP地址信息。 cmd='/SSH2/L%s/PASSWORD%s/C3DES/MMD5%s'%(user,passwd1,host.split()[0]) crt.Session.ConnectInTab(cmd) time.sleep(1) crt.Screen.Send(' ') crt.Screen.Send(' ') crt.Screen.WaitForString('>') #把log_name()函數(shù)的值賦給current_name這個(gè)變量。 current_name=log_name() time.sleep(1) #給txt文件命名。 crt.Session.LogFileName=current_name+"_"+host.split()[0]+"_"+current_time+"_log.txt" crt.Session.Log(True) time.sleep(1) crt.Screen.Send(' ') crt.Screen.WaitForString('>') crt.Screen.Send('displaycur ') #因?yàn)闀?huì)有很多遇到more的情況,而我們又無(wú)法確定要輸入幾次空格,所以通過(guò)while循環(huán)中的條件判斷,實(shí)現(xiàn)不同情況的處理。 whileTrue: crt.Screen.WaitForStrings(["----More----",'') time.sleep(1) crt.Screen.Send(' ') break crt.Screen.Send(' ') crt.Screen.Send(' ') crt.Screen.WaitForString('>') crt.Screen.Send('displayipinterbrie ') crt.Screen.Send(' ') crt.Screen.Send(' ') crt.Screen.WaitForString('>') crt.Screen.Send('quit ') time.sleep(3) deflog_name(): #定義一個(gè)還書(shū)獲取屏幕當(dāng)前設(shè)備名稱 rowIndex=crt.Screen.CurrentRow colindex=crt.Screen.CurrentColumn-1 chushi_name=crt.Screen.Get(rowIndex,1,rowIndex,colindex) name=chushi_name.strip('<>') returnname main()
審核編輯:湯梓紅
-
python
+關(guān)注
關(guān)注
53文章
4753瀏覽量
84068 -
腳本
+關(guān)注
關(guān)注
1文章
382瀏覽量
14760 -
SecureCRT
+關(guān)注
關(guān)注
0文章
20瀏覽量
7894
原文標(biāo)題:用Python寫(xiě)SecureCRT批量登錄/巡檢網(wǎng)絡(luò)設(shè)備腳本
文章出處:【微信號(hào):網(wǎng)絡(luò)技術(shù)干貨圈,微信公眾號(hào):網(wǎng)絡(luò)技術(shù)干貨圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論