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

首頁(yè) > 開(kāi)發(fā) > Python > 正文

python3模擬實(shí)現(xiàn)xshell遠(yuǎn)程執(zhí)行l(wèi)iunx命令的方法

2024-09-09 19:02:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

依賴(lài)包:pip install paramiko

源碼demo:

from time import *import paramiko# 定義一個(gè)類(lèi),表示一臺(tái)遠(yuǎn)端linux主機(jī)class Linux(object):  # 通過(guò)IP, 用戶(hù)名,密碼,超時(shí)時(shí)間初始化一個(gè)遠(yuǎn)程Linux主機(jī)  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 = ''    # 鏈接失敗的重試次數(shù)    self.try_times = 3   # 調(diào)用該方法連接遠(yuǎn)程主機(jī)  def connect(self):    while True:      # 連接過(guò)程中可能會(huì)拋出異常,比如網(wǎng)絡(luò)不通、鏈接超時(shí)      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()        # 如果沒(méi)有拋出異常說(shuō)明連接成功,直接返回        print('連接%s成功' % self.ip)        # 接收到的網(wǎng)絡(luò)數(shù)據(jù)解碼為str        print(self.chan.recv(65535).decode('utf-8'))        return      # 這里不對(duì)可能的異常如socket.error, socket.timeout細(xì)化,直接一網(wǎng)打盡      except Exception as e1:        if self.try_times != 0:          print('連接%s失敗,進(jìn)行重試' % self.ip)          self.try_times -= 1        else:          print('重試3次失敗,結(jié)束程序')          exit(1)   # 斷開(kāi)連接  def close(self):    self.chan.close()    self.t.close()   # 發(fā)送要執(zhí)行的命令  def send(self, cmd):    cmd += '/r'    result = ''    # 發(fā)送要執(zhí)行的命令    self.chan.send(cmd)    # 回顯很長(zhǎng)的命令可能執(zhí)行較久,通過(guò)循環(huán)分批次取回回顯,執(zhí)行成功返回true,失敗返回false    while True:      sleep(0.5)      ret = self.chan.recv(65535)      ret = ret.decode('utf-8')      result += ret      return result  '''  發(fā)送文件  @:param upload_files上傳文件路徑 例如:/tmp/test.py  @:param upload_path 上傳到目標(biāo)路徑 例如:/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,用戶(hù)名,密碼  host.connect()  # result = host.send('ls') # 發(fā)送一個(gè)查看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"))

運(yùn)行代碼測(cè)試效果圖:

以上這篇python3模擬實(shí)現(xiàn)xshell遠(yuǎn)程執(zhí)行l(wèi)iunx命令的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持武林網(wǎng)之家。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产高潮好爽受不了了夜色 | 看免费黄色大片 | 国产成人精品视频在线 | 欧美一级片在线 | 日韩视频高清 | 国产一级毛片高清视频完整版 | 久久精品一区二区三区不卡牛牛 | 国产69精品久久久久久久久久 | 欧美成人综合视频 | free korean xxxxhd | www.91操 | 草草在线观看 | 国产午夜精品一区二区三区不卡 | 中文字幕综合 | 成人国产精品久久 | 欧美一区二区三区中文字幕 | 91精品国| 狠狠一区| 色播亚洲 | 亚洲成人夜色 | 欧美日韩高清在线观看 | 国产成人在线观看免费网站 | jizzzzxxxxx | 一本一本久久a久久精品综合小说 | 麻豆小视频在线观看 | 久久久av亚洲男天堂 | 久久久成人999亚洲区美女 | 久久久鲁 | 黄色男女视频 | 亚洲电影在线观看高清免费 | 久久蜜臀一区二区三区av | 国产精品18久久久久久久 | 国产精品爱久久久久久久 | 欧美wwwsss9999| av在线免费观看不卡 | 精品国产一二区 | 久久网页| xxxxhdvideosex | 午夜精品视频免费观看 | 欧美一级黄色录相 | 黄色特级一级片 |