溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

使用paramiko控制交換機(jī)

發(fā)布時(shí)間:2020-07-24 06:04:32 來(lái)源:網(wǎng)絡(luò) 閱讀:445 作者:eflypro小普 欄目:開(kāi)發(fā)技術(shù)

簡(jiǎn)介

paramiko是用python語(yǔ)言寫(xiě)的一個(gè)模塊,遵循SSH2協(xié)議,支持以加密和認(rèn)證的方式,進(jìn)行遠(yuǎn)程服務(wù)器的連接。

由于使用的是python這樣的能夠跨平臺(tái)運(yùn)行的語(yǔ)言,所以所有python支持的平臺(tái),如Linux,

Solaris, BSD, MacOS X,

Windows等,paramiko都可以支持。因此,如果需要使用SSH從一個(gè)平臺(tái)連接到另外一個(gè)平臺(tái),進(jìn)行一系列的操作時(shí),paramiko是最佳工具之一。

此外,由于常見(jiàn)的交換機(jī)都支持ssh,那么使用paramiko控制交換機(jī)變成現(xiàn)實(shí)。

安裝

pip 安裝方式

pip install paramiko

如果沒(méi)有安裝pycrypto,則需要先安裝pycrypto庫(kù)
使用

paramiko提供了多種連接方式,在此我們使用ssh的方式連接交換機(jī)并發(fā)送命令以實(shí)現(xiàn)控制交換機(jī)的目的。

控制方式

通常有兩種控制方式,使用SSHClient和使用terminal,這兩種的差別分別為:

(1)使用SSHClient發(fā)送命令后,ssh通道自動(dòng)關(guān)閉

(2)使用terminal發(fā)送命令后,ssh通道不會(huì)自動(dòng)關(guān)閉

常規(guī)的控制流程

使用paramiko控制交換機(jī)

SSHClient使用流程

使用paramiko控制交換機(jī)

注意:獲取exec_command返回的數(shù)據(jù),可以一次性獲取全部

terminal使用流程

使用paramiko控制交換機(jī)

注意:獲取從terminal的返回?cái)?shù)據(jù),只能通過(guò)recv指定接收的數(shù)據(jù)量,遇到數(shù)據(jù)量大的時(shí)候,可以采用循環(huán)接收的方式.同時(shí)加入超時(shí)的判斷,讓程序的邏輯更為完善,代碼如下:
使用paramiko控制交換機(jī)

當(dāng)然,你可以加入結(jié)束符的控制,遇到接收的字符串中有特定的結(jié)束符,則跳出接收循環(huán)即可。

注意點(diǎn)

對(duì)交換機(jī)的控制,如果一個(gè)邏輯中包含了一個(gè)操作,則直接使用SSHClient控制即可;但事實(shí)上,對(duì)交換機(jī)的操作往往是需要執(zhí)行一系列的命令,如果還是使用SSHClient就會(huì)顯得力不從心,雖然SSHClient可以一次性發(fā)送多條命令,但同時(shí)發(fā)送命令會(huì)導(dǎo)致有些命令會(huì)執(zhí)行不成功。因此,使用terminal發(fā)送命令,更為適合,控制起來(lái)也會(huì)更方便。
使用paramiko控制交換機(jī)

使用paramiko控制交換機(jī)
文章來(lái)自公眾號(hào):睿江云計(jì)算

睿江云官網(wǎng)鏈接:https://www.eflycloud.com/home?from=RJ0024

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI