麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Python > 正文

python3模擬實現xshell遠程執行liunx命令的方法

2024-09-09 19:02:19
字體:
來源:轉載
供稿:網友

依賴包:pip install paramiko

源碼demo:

from time import *import paramiko# 定義一個類,表示一臺遠端linux主機class Linux(object):  # 通過IP, 用戶名,密碼,超時時間初始化一個遠程Linux主機  def __init__(self, ip, username, password, timeout=30):    self.ip = ip    self.username = username    self.password = password    self.timeout = timeout    # transport和chanel    self.t = ''    self.chan = ''    # 鏈接失敗的重試次數    self.try_times = 3   # 調用該方法連接遠程主機  def connect(self):    while True:      # 連接過程中可能會拋出異常,比如網絡不通、鏈接超時      try:        self.t = paramiko.Transport(sock=(self.ip, 22))        self.t.connect(username=self.username, password=self.password)        self.chan = self.t.open_session()        self.chan.settimeout(self.timeout)        self.chan.get_pty()        self.chan.invoke_shell()        # 如果沒有拋出異常說明連接成功,直接返回        print('連接%s成功' % self.ip)        # 接收到的網絡數據解碼為str        print(self.chan.recv(65535).decode('utf-8'))        return      # 這里不對可能的異常如socket.error, socket.timeout細化,直接一網打盡      except Exception as e1:        if self.try_times != 0:          print('連接%s失敗,進行重試' % self.ip)          self.try_times -= 1        else:          print('重試3次失敗,結束程序')          exit(1)   # 斷開連接  def close(self):    self.chan.close()    self.t.close()   # 發送要執行的命令  def send(self, cmd):    cmd += '/r'    result = ''    # 發送要執行的命令    self.chan.send(cmd)    # 回顯很長的命令可能執行較久,通過循環分批次取回回顯,執行成功返回true,失敗返回false    while True:      sleep(0.5)      ret = self.chan.recv(65535)      ret = ret.decode('utf-8')      result += ret      return result  '''  發送文件  @:param upload_files上傳文件路徑 例如:/tmp/test.py  @:param upload_path 上傳到目標路徑 例如:/tmp/test_new.py  '''  def upload_file(self,upload_files,upload_path):    try:      tran=paramiko.Transport(sock=(self.ip, self.port))      tran.connect(username=self.username, password=self.password)      sftp = paramiko.SFTPClient.from_transport(tran)      result=sftp.put(upload_files, upload_path)      return True if result else False    except Exception as ex:      print(ex)      tran.close()    finally:      tran.close()  # 連接正常的情況if __name__ == '__main__':  host = Linux('192.168.16.57', 'root', '+B*A15*EFpKG') # 傳入Ip,用戶名,密碼  host.connect()  # result = host.send('ls') # 發送一個查看ip的命令  def input_cmd(str):    return input(str)  tishi_msg="輸入命令:"  while True:    msg=input(tishi_msg)    if msg=="exit":      host.close()      break    else:      res=host.send(msg)      data=res.replace(res.split("/n")[-1],"")      tishi_msg=res.split("/n")[-1]      print(res.split("/n")[-1] + data.strip("/n"))

運行代碼測試效果圖:

以上這篇python3模擬實現xshell遠程執行liunx命令的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網之家。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日产精品一区二区三区在线观看 | 欧日一级片| 一级电影免费在线观看 | 亚洲精品一区二区三区免 | 中文字幕线观看 | 一级黄色国产视频 | 一区二区久久 | 男人的天堂色偷偷 | 国产91精品欧美 | 久久精品站| 国产精品久久久久久久久久久久午夜 | 国产资源在线视频 | www.guochanav.com| 精品1 | 国产精品自拍99 | 久久精品亚洲精品国产欧美kt∨ | 青草久久网 | 99精品视频久久精品视频 | 农村寡妇偷毛片一级 | 亚洲第一黄色网 | 狠狠干五月天 | 国产精品自拍av | 久久草在线视频国产 | xxx日本视频| 免费一区在线 | 免费在线观看国产精品 | 九九视频精品在线 | 一级黄片毛片免费看 | 欧美亚洲一区二区三区四区 | 欧美黄色三级视频 | 久久久久久久一区 | 国产四区| 狠狠干天天操 | 成年免费大片黄在线观看岛国 | 暴力肉体进入hdxxxx0 | 欧美一级黄色免费看 | 亚洲欧美日韩中文在线 | 玩偶姐姐在线观看免费 | 日韩在线激情 | 国产毛片aaa一区二区三区视频 | 日韩视频在线免费 |