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

python如何利用paramiko執(zhí)行服務(wù)器命令

 更新時間:2020年11月07日 15:06:25   作者:JanWong  
這篇文章主要介紹了python如何利用paramiko執(zhí)行服務(wù)器命令,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

話不多說直接上代碼

封裝連接

@staticmethod
  def connect(ip, server_user, server_port, server_path):
    """
    連接服務(wù)器

    :param :
    :return:
    """
    ssh = paramiko.SSHClient()
    private_key = paramiko.RSAKey.from_private_key_file('{}.ssh/id_rsa'.format(server_path))
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    try:
      ssh.connect(ip, port=server_port, username=server_user, pkey=private_key, timeout=5, allow_agent=True)
      return ssh
    except Exception as e:
      app.logger.info('connect_error info is {}'.format(e.__repr__()))

      return {
        'result': 1,
        'ip': ip,
        'msg': e.__repr__(),
      }

在服務(wù)器執(zhí)行命令

def fabric_run_cmd(self, ip, server_user, server_port, server_path, cmd):
    """
    批量在服務(wù)器執(zhí)行命令

    :return:
    """
    conn = self.connect(ip, server_user, server_port, server_path)
    try:
      if type(conn) == dict:
        return conn
      else:
        stdin, stdout, stderr = conn.exec_command(cmd)
        app.logger.info('fabric_run_cmd_stdout info is {}'.format(stdout.readlines()))
        app.logger.info('fabric_run_cmd_stderr info is {}'.format(stderr.readlines()))
        channel = stdout.channel
        status = channel.recv_exit_status()
        conn.close()
        app.logger.info('fabric_run_cmd_status info is {}'.format(status))
        if status == 0:
          return {
            'ip': ip,
            'msg': '執(zhí)行成功',
            'result': 0
          }
        else:
          return {
            'ip': ip,
            'msg': stderr.readlines(),
            'result': 1
          }
    except Exception as e:
      app.logger.info('fabric_run_cmd_error info is {}'.format(e.__repr__()))
      return {
        'ip': ip,
        'msg': e.__repr__(),
        'result': 1
      }

將文件發(fā)送到服務(wù)器

def fabric_put_file(self, ip, src_file, dst_file, server_user, server_port, server_path):
    """
    發(fā)送文件到服務(wù)器

    :return:
    """
    conn = self.connect(ip, server_user, server_port, server_path)
    if type(conn) == dict:
      return conn
    else:
      try:
        ftp = conn.open_sftp()
        ftp.put(dst_file, src_file) # 發(fā)送文件之前先判斷有沒有目標文件夾 如果沒有現(xiàn)在服務(wù)器上創(chuàng)建文件夾
        ftp.close() # 在此判斷文件是否發(fā)送成功
        return {
          'ip': ip,
          'msg': '上傳成功',
          'result': 0
        }
      except Exception as e:
        app.logger.info('fabric_put_file_error info is {}'.format(e.__repr__()))
        return {
          'ip': ip,
          'msg': e.__repr__(),
          'result': 1
        }

能力有限,如有不妥請留言指正

以上就是python如何利用paramiko執(zhí)行服務(wù)器命令的詳細內(nèi)容,更多關(guān)于python 執(zhí)行服務(wù)器命令的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python列出一個文件夾及其子目錄的所有文件

    Python列出一個文件夾及其子目錄的所有文件

    這篇文章主要介紹了Python列出一個文件夾及其子目錄的所有文件的方法,和python列出文件夾下的所有文件的四種方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • python 與GO中操作slice,list的方式實例代碼

    python 與GO中操作slice,list的方式實例代碼

    這篇文章主要介紹了python 與GO中操作slice,list的方式實例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • pytest-sugar?執(zhí)行過程中顯示進度條的腳本分享

    pytest-sugar?執(zhí)行過程中顯示進度條的腳本分享

    Pytest-sugar是一款用來改善控制臺顯示的插件,增加了進度條顯示,使得在用例執(zhí)行過程中可以看到進度條,而且進度條是根據(jù)用例是否通過標注不同顏色,非常醒目,接下來通過本文給大家分享下pytest?sugar?顯示進度條的腳本,感興趣的朋友一起看看吧
    2022-12-12
  • Python?第三方庫?Pandas?數(shù)據(jù)分析教程

    Python?第三方庫?Pandas?數(shù)據(jù)分析教程

    這篇文章主要介紹了Python?第三方庫?Pandas?數(shù)據(jù)分析教程的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • pytorch關(guān)于Tensor的數(shù)據(jù)類型說明

    pytorch關(guān)于Tensor的數(shù)據(jù)類型說明

    這篇文章主要介紹了pytorch關(guān)于Tensor的數(shù)據(jù)類型說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python異常觸發(fā)及自定義異常類解析

    python異常觸發(fā)及自定義異常類解析

    這篇文章主要介紹了python異常觸發(fā)及自定義異常類解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 在tensorflow中設(shè)置保存checkpoint的最大數(shù)量實例

    在tensorflow中設(shè)置保存checkpoint的最大數(shù)量實例

    今天小編就為大家分享一篇在tensorflow中設(shè)置保存checkpoint的最大數(shù)量實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 教你如何用python開發(fā)一款數(shù)字推盤小游戲

    教你如何用python開發(fā)一款數(shù)字推盤小游戲

    這篇文章主要介紹了教你如何用python開發(fā)一款數(shù)字推盤小游戲,文中有非常詳細的代碼示例,喜對歡玩小游戲的或者正在學(xué)習(xí)python小游戲開發(fā)的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • 利用Python繪制酷炫的3D地圖

    利用Python繪制酷炫的3D地圖

    pyecharts是一款將python與echarts結(jié)合的強大的數(shù)據(jù)可視化工具。本文將為大家介紹如何利用pyecharts繪制酷炫的3D地圖,感興趣的小伙伴可以試一試
    2022-03-03
  • Django migrate報錯的解決方案

    Django migrate報錯的解決方案

    在講解如何解決migrate報錯原因前,我們先要了解migrate做了什么事情,本文就詳細的介紹migrate使用以及出現(xiàn)問題的解決,感興趣的可以了解一下
    2021-05-05

最新評論

即墨市| 方城县| 平江县| 正蓝旗| 龙游县| 鄱阳县| 获嘉县| 博爱县| 攀枝花市| 东阿县| 九寨沟县| 正安县| 青川县| 巩义市| 金门县| 堆龙德庆县| 平江县| 桑植县| 海南省| 色达县| 遂溪县| 台安县| 邳州市| 常熟市| 兴义市| 永清县| 宜州市| 灵寿县| 永年县| 阿尔山市| 永昌县| 凤阳县| 冷水江市| 临海市| 历史| 墨脱县| 大邑县| 宁陕县| 临江市| 太白县| 比如县|