<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      本地連接環(huán)境代碼詳解

      SSH連接主機

      目的

      使用python實現(xiàn)ssh連接特定主機,可以發(fā)送命令和接收命令回顯,并具備日志功能。

      需求

      根據(jù)目的可分解為4個需求

      1. ssh連接特定主機
      2. 發(fā)送命令
      3. 回顯命令—處理輸出以及異常
      4. 日志功能

      實現(xiàn)

      Ssh.py

      維護一個Ssh類

      import paramiko
      from lib.common.Logger import Logger
      import time
      import re
      
      class ClassCli:
          def __init__(self, ip: str, username: str, passwd: str):
              self.ip = ip
              self.username = username
              self.passwd = passwd
              self.SSHConnect = self.__connect()
              self.logger = Logger(self.__class__.__name__)
              self.shell = None
      
          def __connect(self):
              ssh = paramiko.SSHClient()
              ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 自動添加主機密鑰
              ssh.connect(self.ip, username=self.username, password=self.passwd)
              return ssh
      
      
          def open_shell(self):
              # 模擬交互式終端
              self.shell = self.SSHConnect.invoke_shell()
              time.sleep(1)  # 等待終端初始化完成
      
              # 讀取并記錄登錄信息
              login_info = ""
              while self.shell.recv_ready():
                  login_info += self.shell.recv(1024).decode('utf-8', 'ignore')
              self.logger.info("Login Information:\n" + login_info)
      
          def exec_command(self, cmd: str, waitstr: str = r'[#$]', timeout: int = 10):
              if not self.shell:
                  self.open_shell()  # 如果shell未創(chuàng)建,則創(chuàng)建并記錄登錄信息
      
              # 發(fā)送命令
              self.shell.send(f"{cmd}\n")
              # 等待特定字符串出現(xiàn)
              start_time = time.time()
              output = ""
              while True:
                  if self.shell.recv_ready():
                      output += self.shell.recv(1024).decode('utf-8', 'ignore')
                      if re.search(waitstr, output):
                          break
                  if time.time() - start_time > timeout:
                      raise TimeoutError(f"Command execution timed out after {timeout} seconds")
                  time.sleep(0.1)  # 稍作等待,避免CPU占用過高
      
              self.logger.info(output)
              return output
      
          def close(self):
              # 關閉SSH連接
              self.SSHConnect.close()
      

      Logger.py

      通過logging庫建立一個日志記錄器

      import logging
      
      class Logger:
          def  __init__(self, __name__):
              # 獲取日志記錄器
              self.logger = logging.getLogger(__name__)
              self.logger.setLevel(logging.DEBUG)
              # 獲取控制臺處理器
              self.handler = logging.StreamHandler()
              self.handler.setLevel(logging.DEBUG)
              self.formatter = logging.Formatter('[%(levelname)s]:%(asctime)s - %(filename)s:%(lineno)s: %(message)s')
              self.handler.setFormatter(self.formatter)
              self.logger.addHandler(self.handler)
              pass
      
          def info(self, str):
              return self.logger.info(str)
          
          def error(self, str):
              return self.logger.error(str)
      
          def debug(self, str):
              return self.logger.debug(str)    
      

      main.py

      測試

      from Logger import Logger
      from Ssh  import ClassCli
      
      logger = Logger(__name__)
      
      node = ClassCli("192.168.137.131", "root", "123456")
      node.exec_command("ls")
      logger.info("cmd is : ls")
      logger.error("cmd is : ls")
      logger.debug("cmd is : ls")
      node.close()
      
      posted @ 2025-06-25 23:11  LemHou  閱讀(10)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久天天躁狠狠躁夜夜躁2012| 自拍偷拍视频一区二区三区| 亚洲经典av一区二区| 国产精品国产精品一区精品| 777奇米四色成人影视色区| 国产麻传媒精品国产av| 亚洲男人的天堂网站| 在线观看无码av免费不卡网站| 美女黄网站人色视频免费国产| 国产日韩成人内射视频| 北岛玲中文字幕人妻系列| 国产精品中文一区二区| 办公室强奷漂亮少妇同事| 亚洲人成网站999久久久综合| 国产真人无遮挡免费视频| 日韩有码国产精品一区| 午夜精品久久久久久久爽| 久久国产免费观看精品| 精品免费看国产一区二区| 午夜在线观看成人av| 国产综合亚洲区在线观看| 精品人妻日韩中文字幕| 江西省| 性色在线视频精品| 亚洲av综合色一区二区| 国产主播精品福利午夜二区| 国产精品综合色区av| 亚洲国产精品久久无人区| 亚洲色欲色欱WWW在线| 国产第一页浮力影院入口| 国产av熟女一区二区三区| 强奷漂亮少妇高潮伦理| 国产无人区码一区二区| 999国产精品999久久久久久 | 国产福利片无码区在线观看| 狠狠综合久久综合88亚洲| 少妇人妻偷人精品免费视频| 26uuu另类亚洲欧美日本| 亚洲欧洲日韩国内精品| 资源县| 无码AV中文字幕久久专区|