1. 程式人生 > 實用技巧 >paramiko連線並配置交換機

paramiko連線並配置交換機

#-*-coding:UTF-8 -*-
import paramiko
import time
ip = "192.168.10.11"
username = "admin"
password = "Huawei@123"
\\建立交換機登陸資訊變數
ssh=paramiko.SSHClient()
\\建立SSH物件
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
\\允許連線不在know_hosts檔案中的主機
ssh.connect(hostname=ip,port=22,username=username,password=password)
\\SSH方式連線交換機
print("成功連線",ip)

command=ssh.invoke_shell()
\\呼叫交換機命令列
command.send("sys\n")
command.send("sysname HW_Switch\n")
command.send("interface loopback 0\n")
command.send("ip address 192.168.0.124\n")
command.send("return\n")
command.send("save\n")
command.send("y\n")
\\傳送配置命令
time.sleep(3)
output=command.recv(65535)
print(output)
\\設定等待時間並列印回顯內容
ssh.close()
\\關閉連線

本例中通過SSH方式成功連線交換機後,我們需要呼叫paramiko.SSHClient()下面的invoke.shell()來喚醒shell,也就是華為交換機的VRP命令列,並將它賦值給變數command,之後呼叫invoke.shell()下面的command()函式,向交換機發送配置命令。
Python是一次性執行指令碼命令的,中間沒有時間間隔,這樣就會導致某些命令遺漏和回顯內容不完整的問題。我們在使用recv()函式將回顯結果儲存之前,需要呼叫time模組下的sleep()函式手動讓Python停止3秒鐘,這樣回顯內容才能被完整地打印出來。這裡的command.recv(65535)中的65535代表擷取65535個字元的回顯內容。對交換機配置完畢後,使用close()方法退出SSH連線。