婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使paramiko庫執行命令時在給定的時間強制退出功能的實現

使paramiko庫執行命令時在給定的時間強制退出功能的實現

熱門標簽:阿里電話機器人對話 電銷機器人系統廠家鄭州 螳螂科技外呼系統怎么用 qt百度地圖標注 正安縣地圖標注app 遼寧智能外呼系統需要多少錢 400電話申請資格 地圖地圖標注有嘆號 舉辦過冬奧會的城市地圖標注

  使用paramiko庫ssh連接到遠端云主機上時,非常偶現卡死現象,連接無法退出(可以是執行命令時云主機重啟等造成)。需要給定一段時間,不管命令執行是否卡住,都退出連接,顯示命令執行超時錯誤。

實現方式:

線程+事件,在線程中執行ssh命令,給事件配置超時時間。

代碼示例:

1 from threading import Thread, Event

2 import paramiko

class SshClient(object):

  def __init__(self, ip, port, username, password):
    self.ip = ip
    self.host = host
    self.username = username
    self.password = password

  def exec_command(cmd, timeout):
    log.info(u"在ip:%s上執行命令%s" % (self.ip, cmd))
    sc = paramiko.SSHClient()
    sc.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    # 用來接收stdout stderror status信息
    res = [None, None, None]

    def get_return(start_event, res_list):
      _, cmd_stdout, cmd_stderr = sc.exec_command(command=cmd, timeout=timeout)
      channel = cmd_stdout.channel
      cmd_status = channel.recv_exit_status()
      res_list[0] = cmd_stdout
      res_list[1] = cmd_stderr
      res_list[2] = cmd_status
      start_event.set()  # 表示線程已經執行完畢

    try:
      sc.connect(hostname=self.ip, port=self.port, username=self.username, password=self.password, timeout=30)  # 這里的timeout是連接使用的,與我們要的不同
      start_evt = Event()
      t = Thread(target=get_return, args=(start_evt, res))
      t.start()
      start_evt.wait(timeout=timeout)
      # 執行到這里說明線程已經退出
      if None in res:
        raise Exception(u"命令超時退出")
      stdout, stderr, status = res
      if status != 0:
        raise Exception(u"命令執行返回非0!返回值為%s,錯誤信息為%s" % (status, stdout.read() + stderr.read()))
      return stdout.read() + stderr.read()
    finally:
      sc.close()
}

知識點補充:

python paramiko的使用介紹

一: 使用paramiko

#設置ssh連接的遠程主機地址和端口
t=paramiko.Transport((ip,port))
#設置登錄名和密碼
t.connect(username=username,password=password)
#連接成功后打開一個channel
chan=t.open_session()
#設置會話超時時間
chan.settimeout(session_timeout)
#打開遠程的terminal
chan.get_pty()
#激活terminal
chan.invoke_shell()

然后就可以通過chan.send('command')和chan.recv(recv_buffer)來遠程執行命令以及本地獲取反饋。

 二: paramiko的兩個模塊介紹

paramiko有兩個模塊SSHClient()和SFTPClient()

SSHClient()的使用代碼:

import paramiko

ssh = paramiko.SSHClient() # 創建SSH對象
# 允許連接不在know_hosts文件中的主機
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 連接服務器
ssh.connect(hostname='192.168.2.103', port=22, username='root', password='123456')

stdin, stdout, stderr = ssh.exec_command('ls') # 執行命令
result = stdout.read() # 獲取命令結果
print (str(result,encoding='utf-8'))
ssh.close() # 關閉連接

SSHClient()里有個transport變量,是用于獲取連接,我們也可單獨的獲取到transport變量,然后執行連接操作

import paramiko

transport = paramiko.Transport(('192.168.2.103', 22))
transport.connect(username='root', password='123456')

ssh = paramiko.SSHClient()
ssh._transport = transport

stdin, stdout, stderr = ssh.exec_command('df')
print (str(stdout.read(),encoding='utf-8'))

transport.close()

用transport實現上傳下載以及命令的執行:

#coding:utf-8
import paramiko
import uuid

class SSHConnection(object):

def __init__(self, host='192.168.2.103', port=22, username='root',pwd='123456'):
self.host = host
self.port = port
self.username = username
self.pwd = pwd
self.__k = None

def connect(self):
transport = paramiko.Transport((self.host,self.port))
transport.connect(username=self.username,password=self.pwd)
self.__transport = transport

def close(self):
self.__transport.close()

def upload(self,local_path,target_path):
# 連接,上傳
# file_name = self.create_file()
sftp = paramiko.SFTPClient.from_transport(self.__transport)
# 將location.py 上傳至服務器 /tmp/test.py
sftp.put(local_path, target_path)

def download(self,remote_path,local_path):
sftp = paramiko.SFTPClient.from_transport(self.__transport)
sftp.get(remote_path,local_path)

def cmd(self, command):
ssh = paramiko.SSHClient()
ssh._transport = self.__transport
# 執行命令
stdin, stdout, stderr = ssh.exec_command(command)
# 獲取命令結果
result = stdout.read()
print (str(result,encoding='utf-8'))
return result

ssh = SSHConnection()
ssh.connect()
ssh.cmd("ls")
ssh.upload('s1.py','/tmp/ks77.py')
ssh.download('/tmp/test.py','kkkk',)
ssh.cmd("df")
ssh.close()

到此這篇關于使paramiko庫執行命令時,在給定的時間強制退出的文章就介紹到這了,更多相關paramiko庫執行命令內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python Paramiko模塊的使用實際案例
  • python利用paramiko連接遠程服務器執行命令的方法
  • windows下python安裝paramiko模塊和pycrypto模塊(簡單三步)
  • Python Paramiko模塊的安裝與使用詳解
  • python paramiko實現ssh遠程訪問的方法
  • 使用paramiko遠程執行命令、下發文件的實例

標簽:信陽 合肥 昭通 興安盟 濟源 淘寶好評回訪 阜新 隨州

巨人網絡通訊聲明:本文標題《使paramiko庫執行命令時在給定的時間強制退出功能的實現》,本文關鍵詞  使,paramiko,庫,執行,命令,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使paramiko庫執行命令時在給定的時間強制退出功能的實現》相關的同類信息!
  • 本頁收集關于使paramiko庫執行命令時在給定的時間強制退出功能的實現的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久这里只有精品6| 国产精品主播直播| 欧美一区二区三区成人| 久久精品99国产精品日本| 国产精品对白交换视频| 日韩欧美国产高清| 色综合天天性综合| 国产a视频精品免费观看| 日韩激情在线观看| 亚洲女同ⅹxx女同tv| 国产欧美精品一区二区色综合| 69p69国产精品| 在线观看亚洲一区| 色成人在线视频| 91片黄在线观看| av高清久久久| 99国产精品久久| 99久久精品国产精品久久| 黑人精品欧美一区二区蜜桃| 欧美一区二区视频在线观看| 欧美日韩一区 二区 三区 久久精品| 成人av在线一区二区三区| 国产精品一区二区久激情瑜伽| 激情成人午夜视频| 国产一区二区在线看| 精品一区二区三区的国产在线播放| 日产精品久久久久久久性色| 日本成人中文字幕在线视频| 蜜桃一区二区三区四区| 日本免费新一区视频| 天堂av在线一区| 免费观看久久久4p| 国产一区二区三区高清播放| 国产精品一区二区男女羞羞无遮挡 | 日韩一区和二区| 欧美一二三区精品| 亚洲激情自拍视频| 日韩精品色哟哟| 久久精品国产久精国产| 国精产品一区一区三区mba视频| 国产在线观看一区二区| 成人国产视频在线观看| 日本韩国精品一区二区在线观看| 在线观看免费成人| 制服丝袜中文字幕亚洲| 久久久国际精品| 亚洲精品第一国产综合野| 视频在线观看国产精品| 国产精品一区二区久久不卡| 91福利视频久久久久| 欧美一区二区三区视频免费| 国产欧美视频一区二区| 亚洲视频在线一区| 蜜桃免费网站一区二区三区| 国产高清久久久| 欧美日韩精品是欧美日韩精品| 欧美一卡二卡三卡四卡| 国产精品久久久久天堂| 性久久久久久久久久久久 | 99re热这里只有精品视频| 欧美亚洲日本一区| 久久久久久9999| 亚洲成人自拍偷拍| 国产精品综合一区二区三区| 91福利小视频| 中国av一区二区三区| 天堂在线一区二区| 成人一级片网址| 欧美一级国产精品| 夜夜揉揉日日人人青青一国产精品| 麻豆一区二区三区| 欧美日韩综合一区| 自拍视频在线观看一区二区| 国产综合一区二区| 欧美日本乱大交xxxxx| 国产精品天美传媒| 久久电影国产免费久久电影| 欧美自拍偷拍一区| 中文字幕中文在线不卡住| 黄页网站大全一区二区| 欧美精品在线观看播放| 亚洲精选一二三| 99久免费精品视频在线观看| www国产成人免费观看视频 深夜成人网 | 日韩av中文字幕一区二区| 成年人国产精品| 久久女同互慰一区二区三区| 日本不卡高清视频| 欧美日韩一区二区三区视频| 亚洲欧美电影院| 97久久超碰精品国产| 国产精品三级在线观看| 国产成人av一区| 国产视频一区在线播放| 久久精品国产精品亚洲精品| 4438亚洲最大| 午夜影视日本亚洲欧洲精品| 欧美三级在线看| 日日摸夜夜添夜夜添亚洲女人| 欧美中文字幕一二三区视频| 一区二区高清视频在线观看| 欧美在线观看18| 亚洲一区二区三区中文字幕| 欧美午夜片在线看| 不卡一区中文字幕| 国产精品久久午夜| 成人av资源站| 亚洲精品一二三| 国产精品一区在线| 中文字幕第一区二区| 91在线无精精品入口| 亚洲免费av网站| 欧美中文字幕一区二区三区| 五月激情综合网| 欧美变态tickling挠脚心| 国产在线精品一区二区| 亚洲国产岛国毛片在线| 91丨九色丨国产丨porny| 亚洲国产一区二区三区青草影视 | 精品粉嫩超白一线天av| 国产精品影视在线| 亚洲视频综合在线| 777奇米成人网| 国产精品一线二线三线精华| 亚洲色图在线播放| 欧美日韩一区二区三区在线 | 色一情一乱一乱一91av| 亚洲v精品v日韩v欧美v专区| 日韩一区二区电影在线| 国产91丝袜在线观看| 亚洲综合免费观看高清在线观看| 在线不卡欧美精品一区二区三区| 精品无码三级在线观看视频| 成人欧美一区二区三区黑人麻豆| 91传媒视频在线播放| 日本欧美一区二区三区乱码| 国产情人综合久久777777| 在线观看日韩国产| 国产精品一区三区| 亚洲二区在线视频| 国产欧美一区二区精品性色超碰 | 婷婷六月综合网| 911国产精品| 91在线观看地址| 激情五月激情综合网| 一区二区三区欧美日| 欧美变态凌虐bdsm| 欧美区一区二区三区| 成人国产精品免费观看动漫| 日韩激情视频在线观看| 亚洲欧美自拍偷拍| 精品国产伦一区二区三区免费| 94色蜜桃网一区二区三区| 激情综合网av| 国产午夜精品一区二区三区嫩草 | 日韩欧美不卡一区| 欧洲在线/亚洲| 成人动漫中文字幕| 国产呦萝稀缺另类资源| 亚洲一级电影视频| 中文字幕亚洲成人| 国产色综合一区| 日韩三级电影网址| 欧美另类变人与禽xxxxx| 色八戒一区二区三区| 99久久精品免费看国产免费软件| 激情小说亚洲一区| 久久成人精品无人区| 日韩 欧美一区二区三区| 一区二区三区欧美日| 日韩美女视频一区| 国产精品久久久久久久久久久免费看| 久久一夜天堂av一区二区三区| 欧美日韩精品高清| 欧美日韩精品一区二区| 欧美精品久久久久久久久老牛影院| 91麻豆精品一区二区三区| 97久久精品人人做人人爽| 91偷拍与自偷拍精品| 91一区在线观看| 欧洲一区二区三区免费视频| 欧美性受xxxx| 亚洲视频在线一区二区| 亚洲欧美日韩国产中文在线| 亚洲欧美色图小说| 舔着乳尖日韩一区| 久久激情五月婷婷| 大白屁股一区二区视频| 99久久精品免费看国产免费软件| 91在线观看污| 欧美日韩激情一区二区三区| 日韩视频免费直播| 国产亚洲婷婷免费| 亚洲最大的成人av| 日本不卡在线视频| 国产精品一区二区三区99| 99re亚洲国产精品| 6080日韩午夜伦伦午夜伦| 久久久精品中文字幕麻豆发布| 国产网站一区二区|