最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python中SSH遠(yuǎn)程登錄設(shè)備的實(shí)現(xiàn)方法

 更新時(shí)間:2022年04月29日 09:20:24   作者:renkie人可毅  
本文主要介紹了python中SSH遠(yuǎn)程登錄設(shè)備,python中支持SSH協(xié)議的模塊主要有Paramiko和netmiko兩種,本文主要介紹了netmiko模塊,具有一定的參考價(jià)值,感興趣的可以了解一下

python中支持SSH協(xié)議的模塊主要有Paramiko和netmiko兩種,本次實(shí)驗(yàn)采用netmiko模塊。

netmikko模塊為python的第三方模塊,需要使用pip來(lái)下載安裝。(聯(lián)網(wǎng)的情況下)

下載完畢后,進(jìn)入Python 3.10解釋器,如果import netmiko沒(méi)有報(bào)錯(cuò),則說(shuō)明Netmiko安裝成功。

實(shí)驗(yàn)拓?fù)?/h2>

將ensp的LSW1與本地虛擬網(wǎng)卡loopback0進(jìn)行橋接,模擬將自己的電腦橋接到以下拓?fù)渚W(wǎng)絡(luò)中。

實(shí)驗(yàn)?zāi)康模?/h2>

通過(guò)netmiko模塊的SSH逐一登錄4臺(tái)交換機(jī)LSW2-LSW5,并依次為其配置STP,默認(rèn)模式為MSTP。

實(shí)驗(yàn)?zāi)_本

完整代碼

from  netmiko import ConnectHandler
for i in range(20,24):
    SW={
        'device_type':'huawei',
        'ip':'10.0.1.'+str(i),
        'username':'python',
        'password':'123456',
        }
    connect=ConnectHandler(**SW)
    print('\n'+'-----------------'+'成功登錄到交換機(jī)'+SW['ip']+'-----------------')
    config_commands=['stp mode stp','dis stp | include CIST Global Info']
    output=connect.send_config_set(config_commands)
    print(output)
    connect.save_config()

1.從netmiko模塊導(dǎo)入它的鏈接庫(kù)函數(shù)ConnectHandler(),用于實(shí)現(xiàn)SSH登錄網(wǎng)絡(luò)設(shè)備。

from  netmiko import ConnectHandler

2.創(chuàng)建一個(gè)字典SW,該字典包含'device_type'、'ip'、'username'、'password'四個(gè)必選值。'device_type'用于指定設(shè)備類型,這里我們用的是華為的設(shè)備,所以'device_type'為'huawei'。

for i in range(20,24):
    SW={
        'device_type':'huawei',
        'ip':'10.0.1.'+str(i),
        'username':'python',
        'password':'123456',
        }

由于我們這里要登陸四臺(tái)設(shè)備,所以要用for循環(huán)。

3.調(diào)用ConnectHandler()函數(shù),借用for循環(huán),對(duì)字典SW進(jìn)行SSH連接,將他賦值給變量connect,注意SW2前面的**作為標(biāo)識(shí)。

connect=ConnectHandler(**SW)

在Python的在形參前加'*'和'**'表示動(dòng)態(tài)形參

在形參前加'*'表示可以接受多個(gè)實(shí)參值存進(jìn)數(shù)組

對(duì)于在形參前加'**'表示表示接受參數(shù)轉(zhuǎn)化為字典類型

4.如果SSH登錄成功,則提示成功登錄

  print('\n'+'-----------------'+'成功登錄到交換機(jī)'+SW['ip']+'-----------------')

5.創(chuàng)建一個(gè)名為config_commands的列表為參數(shù),其元素為需要在交換機(jī)上執(zhí)行的命令。

config_commands=['stp mode stp','dis stp | include CIST Global Info']

6.然后以剛剛創(chuàng)建的config_commands的列表為參數(shù),調(diào)用ConnectHandler()的send_config_set()函數(shù)來(lái)使用上述命令對(duì)SW做配置,并將配置過(guò)程打印出來(lái)。

output=connect.send_config_set(config_commands)
print(output)

7.最后用save_config()保存設(shè)備配置

 connect.save_config()

實(shí)驗(yàn)結(jié)果

從以上結(jié)果可知,netmiko額外替我們輸入了:system view和return。 

代碼優(yōu)化

如果有大量的交換機(jī)其管理ip地址也沒(méi)什么規(guī)律性,此時(shí)直接用for循環(huán)管理ip地址來(lái)登錄設(shè)備,就不再那么靈活和使用了。此時(shí)我們可以把所有交換機(jī)的ip地址都放入都放入一個(gè)文件名為ip_list的文件,通過(guò)for循環(huán)readlines()來(lái)讀取文件中的每行ip地址,來(lái)逐臺(tái)登錄設(shè)備。

 完整腳本

from  netmiko import ConnectHandler
with open('ip_list.txt') as f:
    for line in f.readlines():
        host=line.strip()
        SW={
            'device_type':'huawei',
            'ip':host,             #host是變量,不要粗心加了引號(hào)
            'username':'python',
            'password':'123456',
            }
        connect=ConnectHandler(**SW)
        print('\n'+'-----------------'+'成功登錄到交換機(jī)'+SW['ip']+'-----------------')
        config_commands=['stp mode stp','dis stp | include CIST Global Info']
        output=connect.send_config_set(config_commands)
        print(output)
        connect.save_config()

注意:ip_list要和python腳本在一個(gè)文件夾。

結(jié)果 

 到此這篇關(guān)于python中SSH遠(yuǎn)程登錄設(shè)備的文章就介紹到這了,更多相關(guān)python中SSH遠(yuǎn)程登錄設(shè)備內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

东丽区| 克拉玛依市| 奉化市| 景东| 瑞金市| 察雅县| 洪泽县| 佛冈县| 景宁| 鱼台县| 北海市| 江北区| 鲁甸县| 迭部县| 黄陵县| 托克逊县| 德化县| 乐平市| 卢龙县| 海原县| 武定县| 云龙县| 海丰县| 新邵县| 宝山区| 海淀区| 米脂县| 广汉市| 玉环县| 东平县| 淳安县| 通道| 雅安市| 淮南市| 裕民县| 株洲市| 泗阳县| 凤翔县| 界首市| 通江县| 太原市|