一,實現這個功能的前提:
二,將虛擬云接入到要實現巡檢的網絡內,將虛擬云連接自己主機的虛擬網卡。
根據上面的三張圖:
192.168.200.1 這個地址需要跟巡檢的設備連通
那么在網絡內設置vlan 10,并在每個設備內都設置一個vlan10的地址
解決了連通問題后,
我們還要配置設備的遠程登錄(每個設備都要):
dsa local-key-pair create//先根據加密算法生成秘鑰對,用于傳輸數據時加密保護,保存在交換機中但不保存在配置文件中
2048//#設置密鑰位數
客戶端登陸SSH server服務端后自動獲得分配鑰匙
user-interfacevty04//進入虛擬終端
authentication-modeaaa//配置口令模式
protocolinboundssh
quit
aaa
local-userhuaweipasswordcipherhw@123
local-userhuaweiprivilegelevel15
local-userhuaweiservice-typessh//當通過password、password-dsa、passowrd-rsa認證時,需要在AAA視圖下創建同名本地用戶,并設置其服務類型和級別
quit
sshuserhuaweiauthentication-typepassword//創建SSH用戶并指定其登陸驗證方式
sshuserhuaweiservice-typestelnet//設置SSH用戶服務類型
stelnetserverenable//打開設備SSH(stelnet)服務端功能
之后最好用xshell或其他嘗試下遠程登錄是否成功。
三,寫python腳本
importparamiko
importtime
log\_time=time.strftime("\%Y-\%m-\%d\%H:\%M:\%S",time.localtime())
user=input("username:")
password=input("password:")
f=open("ip.txt","r")
forlineinf.readlines():
ip=line.strip()
ssh=paramiko.SSHClient()
ssh.set\_missing\_host\_key\_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=ip,username=user,password=password)//ssh遠程登錄
print(log\_time+"成功連接交換機,開始巡檢"+ip)
command=ssh.invoke\_shell()//用于創建一個子shell進程
command.send("system\n")
command.send("displayiprouting-table\n")
command.send("displaydevice\n")
command.send("displayenvironment\n")
command.send("displayalarmurgen\n")
command.send("displaymemory-usage\n")
command.send("displayversion\n")
command.send("displayfan\n")
f=open("check.txt","a")//這a代表寫入,不能用w,w是直接疊加會將之前寫入的數據清理。
time.sleep(2)
output=command.recv(65535)//返回結果字符為65535
result=output.decode("ascii")
f.write(result)
print(result)
f.close()
ssh.close()
這里的ip.txt
中每一行寫入要巡檢設備的ip地址
check.txt是一個空白文件,給程序寫入結果數據。
審核編輯 :李倩
-
模塊
+關注
關注
7文章
2718瀏覽量
47556 -
python
+關注
關注
56文章
4798瀏覽量
84801 -
虛擬網卡
+關注
關注
0文章
5瀏覽量
1427
原文標題:基于華為ensp使用python實現對交換機的巡檢,有源代碼!
文章出處:【微信號:網絡技術干貨圈,微信公眾號:網絡技術干貨圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論