paramiko連線並配置交換機
阿新 • • 發佈:2020-07-06
#-*-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連線。