中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Python項目中使用SSH連接到網絡設備

發布時間:2021-02-19 14:42:40 來源:億速云 閱讀:329 作者:Leah 欄目:開發技術

本篇文章給大家分享的是有關如何在Python項目中使用SSH連接到網絡設備,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1. 測試環境及關鍵代碼解釋

1.1 簡單測試環境

  • 使用python3環境

  • 使用第三方Netmiko模塊(基于Paramiko庫進行改版)

  • 簡單的實驗環境

如何在Python項目中使用SSH連接到網絡設備

1.2 關鍵代碼

  • import xx:導入模塊

  • class xx:定義類

  • def xx: 定義函數

  • try-except :處理可能引發的異常

  • ssh.enable():進入enable模式

  • ssh.find_prompt():返回當前提示符

  • ssh.send_command():發送查詢命令并返回結果

  • ssh.send_config_set():發送配置命令到目標設備

  • ssh.disconnect():關閉連接

Tips: import ConnectHandler和import Netmiko是一樣的效果的哈。

2. 完整代碼

'''
歡迎關注微信公眾號:'diandijishu'
 此平臺是網路工程師個人日常技術、項目案例經驗分享,
 為鞏固及提升技術能力乃至共享所學所知技術,
 也歡迎各位工程師一起分享、一起成長。
'''

#!/usr/bin/env python
#coding:utf-8

from netmiko import ConnectHandler
from netmiko.ssh_exception import NetMikoTimeoutException
from netmiko.ssh_exception import NetMikoAuthenticationException
from datetime import datetime
import time
import logging
from my_devices import device_list as devices

'定義類'
class SSH_Client():
 '定義login_host函數,用于登陸設備'
 def login_host(self , a_device):
  try:
   self.ssh = ConnectHandler(**a_device)
   self.ssh.enable()
   reply = self.ssh.find_prompt()
   print('>' * 10 + '成功登陸結果如下:' + '>' * 10 + '\n' + reply)
   return True
  except ValueError:
   logging.warning(a_device['host'] + ' Secret 密碼錯誤')
  except NetMikoTimeoutException:
   logging.warning(a_device['host'] + ' 連接不上設備,請檢查網絡是否正常通信')
  except NetMikoAuthenticationException:
   logging.warning(a_device['host'] + ' 登陸失敗,用戶名或密碼錯誤')

 '定義do_cmd函數,用于執行命令'
 def do_cmd(self,cmds):
  '讀取文件,for語句循環執行命令'
  with open(cmds) as cmd_obj:
   for cmd in cmd_obj:
    reply = self.ssh.send_command(cmd)
    time.sleep(2)
    logging.warning('>' * 10 + cmd.rstrip() + ' 命令執行結果如下:' + '>' * 10 + '\n' + reply)
 '定義logout_host函數,關閉程序'
 def logout_host(self):
  self.ssh.disconnect()

if __name__ == '__main__':
 cmds = 'cmd.txt' # 存放執行命令文件,相對路徑
 ssh_client = SSH_Client()
 start_time = datetime.now()
 for a_device in devices:
  '如果登錄結果為True,則執行命令,然后退出'
  if ssh_client.login_host(a_device):
   ssh_client.do_cmd(cmds)
   ssh_client.logout_host()
   time.sleep(2)
 stop_time = datetime.now()
 print('總花費時長:{0}\n'.format(stop_time - start_time))

3. 運行效果

如何在Python項目中使用SSH連接到網絡設備

4. 報錯效果

4.1 遠程連接不上

如何在Python項目中使用SSH連接到網絡設備

4.2 用戶名和密碼錯誤

如何在Python項目中使用SSH連接到網絡設備

以上就是如何在Python項目中使用SSH連接到網絡設備,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

马尔康县| 石景山区| 布拖县| 浙江省| 正安县| 宣恩县| 黄石市| 金乡县| 延川县| 安达市| 北辰区| 柳江县| 离岛区| 沐川县| 穆棱市| 镇远县| 镇沅| 民权县| 福海县| 克什克腾旗| 陕西省| 本溪市| 阜阳市| 攀枝花市| 岐山县| 隆子县| 且末县| 开化县| 江山市| 五寨县| 永春县| 霍林郭勒市| 北宁市| 台中市| 天柱县| 余江县| 凤阳县| 汽车| 临夏县| 枣阳市| 河曲县|