實驗描述:
使用Paramiko庫,透過SSH連線網路裝置並執行指令。
網路拓撲:
拓撲圖及初始配置如上。
Python程式碼:
import datetime
import paramiko
import time
ssh_proc = paramiko.SSHClient() ### 使用SSHClient()
ssh_proc.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ### 配置自動儲存主機金鑰
ssh_proc.connect(hostname="192.168.56.201", username="usr001", password="Huawei@123") ### 建立SSH通道連線
command = ssh_proc.invoke_shell() ### 配置互動式命令
command.send("screen-length 0 temporary\n") ### 傳送命令,一次性展示全部內容
command.send("display curr\n") ### 傳送命令,檢視裝置配置
time.sleep(1) ### 傳送命令後睡眠一秒,避免後續接受回顯時上一條命令不完全輸出
recv = command.recv(99999).decode("utf-8").split("<CE1>")[2] ### 將返回的資料透過"<CE1>"分割,只取配置部分
with open("config/{}_{}.txt".format("CE1",datetime.date.today()), "w") as file: ### 將檔案儲存到"config"資料夾下,命名為"CE1+'當天日期'"
file.write(recv)
file.close()
檢視儲存檔案:
檢視檔案內容(展示部分):