首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python paramiko模块中长时间运行的ssh命令

作为一个云计算领域的专家,我了解到paramiko是一个用于SSH连接和执行远程命令的Python库。在长时间运行的SSH命令中,可能会遇到一些问题,例如连接超时、命令执行超时等。为了解决这些问题,我们可以使用以下方法:

  1. 调整连接超时时间:

在创建SSH客户端时,可以设置timeout参数来调整连接超时时间。例如:

代码语言:python
代码运行次数:0
复制

import paramiko

ssh = paramiko.SSHClient()

ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())

ssh.connect('hostname', username='user', password='password', timeout=10)

代码语言:txt
复制

这里的timeout参数设置为10秒,表示如果在10秒内无法连接到远程服务器,则会抛出SSHException异常。

  1. 调整命令执行超时时间:

在执行远程命令时,可以使用channel.exec_command()方法的timeout参数来设置命令执行超时时间。例如:

代码语言:python
代码运行次数:0
复制

stdin, stdout, stderr = ssh.exec_command('long_running_command', timeout=60)

代码语言:txt
复制

这里的timeout参数设置为60秒,表示如果命令在60秒内未完成,则会抛出SSHException异常。

  1. 使用非阻塞方式执行命令:

在某些情况下,可能需要在后台执行长时间运行的命令,而不是等待命令完成。这时可以使用channel.invoke_shell()方法和channel.recv()方法来实现非阻塞执行命令。例如:

代码语言:python
代码运行次数:0
复制

channel = ssh.invoke_shell()

channel.send('long_running_command\n')

while True:

代码语言:txt
复制
   output = channel.recv(1024).decode('utf-8')
代码语言:txt
复制
   if not output:
代码语言:txt
复制
       break
代码语言:txt
复制
   print(output, end='')
代码语言:txt
复制

这里的channel.recv()方法会在每次读取1024字节的数据,如果没有数据可读,则返回空字符串。因此,可以通过循环调用channel.recv()方法来实现非阻塞执行命令。

总之,在使用paramiko模块执行长时间运行的SSH命令时,需要注意连接超时和命令执行超时的问题,并且可以使用非阻塞方式执行命令。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

python下paramiko模块ssh

python下有个paramiko模块,这个模块可以实现ssh登录linux服务器,下面贴出代码,注意,我在centos5.6下,python2.6.5,paramiko-1.7的版本下测试成功.../usr/bin/env python import paramiko hostname='172.28.102.249' username='root' password='toor' if __...name__=='__main__':                                 paramiko.util.log_to_file('paramiko.log')                                 ...password)                                 stdin,stdout,stderr=s.exec_command('ifconfig;free;df')  #这里我输了了多个命令...可以试验下                                 print stdout.read()                                 s.close() 感兴趣的可以试验下

44820

python模块paramiko与ssh

paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。...centos6,直接借助以下命令可以直接完成安装: # yum install gcc python-crypto python-paramiko python-devel  -y   windows的话...连接 以下是一个简单的通过paramiko模块定义的ssh连接并执行命令的函数,如下: #!...(ssh) 五、利用paramiko实现ssh的交互式连接 以下是通过paramiko模块直接用ssh协议登陆到远程服务器的操作代码,这里先定义一个interactive模块,代码如下: import ...六、总结 paramiko模块是一个比较强大的ssh连接模块,以上的示例只是列出了该模块的一些简单的使用方法,还可以使用threading模块加块程序并发的速度;也可以使用configparser模块处理配置文件

1.5K10
  • python的paramiko模块

    paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。  ...由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用...SSH从一个平台连接到另外一个平台,进行一系列的操作时,paramiko是最佳工具之一。...一、安装paramiko模块 [root@yaoliang ~]# pip install paramiko 二、远程连接 1、方法一 import paramiko ssh = paramiko.SSHClient...            return 0     def runup(self):                          # 执行上传和远程执行命令的操作         if self

    56230

    paramiko模块——ssh远程连接服务器并执行命令

    paramiko模块——ssh远程连接服务器并执行命令 通过ssh远程连接服务器并执行相应的命令,类似于Xshell ansible用来批量管理远程服务器,底层其实用的就是paramiko模块 安装 pip3...install paramiko 使用 paramiko模块即支持用户名密码的方式操作服务器 也支持公钥私钥的方式操作服务器 并且实际生产中公钥私钥用的较多,因为密码是敏感信息 用户名和密码的方式执行命令..."""执行命令 用户名和密码的方式""" # 创建对象 ssh = paramiko.SSHClient() # 允许链接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy...('utf-8')) # 关闭链接 ssh.close() 公钥和私钥的方式执行命令 公钥和私钥需要通过git命令生成参考之前写的git相关文章: https://www.cnblogs.com/ghylpb...至此对象内容就既有执行命令的连接又有上传下载链接 ssh = paramiko.SSHClient() ssh.

    3.1K10

    Python paramiko模块的安装

    paramiko是Python语言编写的遵循SSH2协议,支持加密和认证方式,连接远程服务器执行命令或者上传下载文件。...一、安装paramiko pip3 install paramiko 二、使用用户名密码方式远程执行命令 import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy...# 远程主机IP、端口、用户名、密码 stdin, stdout, stderr = ssh.exec_command('df -h')  # 远程服务器要执行的命令 for line in stdout...t) sftp.get('remote_file', 'local_folder') t.close() 四、使用ssh key方式远程执行命令(前提远程主机已经接受了你的公钥) import paramiko...()) ssh.close() 五、使用scp方式远程执行命令 import paramiko scp = paramiko.Transport(('127.0.0.1', 22)) scp.connect

    3.4K10

    【说站】python Paramiko的SSH用法

    python Paramiko的SSH用法 说明 1、将所有设备信息写入文本文档。 简单地使用txt,将登录信息构建成字典。 2、初始化SSH连接和执行命令。...3、分析此需求指定的命令和输出结果。 将结果存储在文件中。 4、增加多线程执行。 提高效率。 5、添加Linux的crontab。 每小时收集一次信息(服务器配置) 实例 #!...Raises:             e: 抛出 paramiko 连接失败的任何异常           """         ssh_connect_params = {             ...          Args:             cmd ([type]): 命令字符串             recv_time (int, optional): 读取回显信息的超时时间. ...Paramiko的SSH用法,希望对大家有所帮助。

    49410

    python3 paramiko 远程执行 ssh 命令、上传文件、下载文件

    在win10的系统下,本来想要python3直接调用ansible库进行远程执行的,但是很可惜,ansible是基于linux系统的ssh服务进行远程调用,不太兼容windows。...介绍 paramiko 遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接,可以实现远程文件的上传,下载或通过ssh远程执行命令。...在本次实验中,最核心的功能就是远程执行ssh命令,所以首先来实验一下这个功能。...使用ipython3远程执行ssh命令 D:\pythonProject\locust_auto_test>ipython3 Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20...远程ssh执行shell命令 In [10]: stdin, stdout, stderr = ssh.exec_command("df -h | grep dev") # 打印查看磁盘信息的结果

    5.9K20

    python paramiko模块简介

    python paramiko模块简介 一:简介     paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。     ...由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用...二:安装   安装paramiko有两个先决条件,python和另外一个名为PyCrypto的模块。   ...通常安装标准的python模块,只需要在模块的根目录下运行: python setup.py build python setup.py install 备注:安装前先检查是否安装gcc(yum -y...()   ssh.close() 其中的”你的命令”可以任意linux支持的命令 4.2 从widnows端下载linux服务器上的文件  coding:utf8     import paramiko

    1.1K10

    python安装需要安装paramiko

    2.paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。...由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux,Solaris,BSD,MacOSX,Windows等,paramiko都可以支持,因此,如果需要使用SSH...下面开始安装paramiko模块,安装paramiko模块需要先安装PyCrypto的模块。...: t.connect(username = “用户名”, password = “口令”, hostkey=”密钥”) 下面给出实际的例子: 3.1windows对linux运行任意命令,并将结果输出...() ssh.close() 其中的”你的命令”可以任意linux支持的命令,如一些常用的命令: df:查看磁盘使用情况uptime:显示系统运行时间信息cat:显示某文件内容mv/cp/mkdir/rmdir

    1.6K20

    python模块-part2

    模块分为三种: 内置模块 开源模块 自定义模块 一:自定义模块 1.定义模块:即编写具有某一功能的python文件ftp.py,ftp既模块名 ftp.py def get(file_path):     ...sys.path 中的某个目录中,如: /usr/lib/python2.7/site-packages/ 2.导入模块(同自定义模块方式) 3:paramiko i:下载安装 # pycrypto,由于...python setup.py install   # 进入python环境,导入paramiko检查是否安装成功 ii.使用模块 1....ssh.close() 注意:以sshclient方式运行交互式命令需要增加两行 import paramiko # 建立一个sshclient对象 ssh = paramiko.SSHClient...win->'nt'; Linux->'posix'os.system("bash command")  运行shell命令,直接显示 os.environ  获取系统环境变量 os.path.abspath

    54220

    python paramiko

    Win7下Python2.7环境安装paramiko模块 Win7下Python2.7环境安装paramiko模块,有需要的朋友可以参考下 近段时间用Python写一个小东西,每次修改代码后要手工上传到服务器...paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接了,下面我们就来给各位一起验证一下python模块paramiko与ssh安装与使用示例吧...-y  windows版下可以安装windows版的GCC(MinGW),然后编辑安装pycrypto和paramiko ,下载安成后,直接运行python.exe setup.pybuild 和 python.exe...ssh连接 以下是一个简单的通过paramiko模块定义的ssh连接并执行命令的函数,如下: 代码如下复制代码#!...paramiko模块是基于Python实现的ssh远程安全链接,实现命令远程、文件传输、SSH代理等功能。

    1.4K10

    Python执行或远程执行shell命令

    最近想要实现通过脚本循环再Linux下运行shell命令,经过探索发现使用Python语言有几种解决方案,在此简单记录。...方案一:脚本本地执行命令 在Python中有两个库都可以实现运行shell命令的效果: import subprocess import os 使用方法也很简单: # subprocess 使用方法 subprocess.call...("ls") # 执行ls命令 # os 使用方法 # 使用system模块执行linux命令时,如果执行的命令没有返回值res的值是256 # 如果执行的命令有返回值且成功执行,返回值是0 res...ssh_fd ): _ssh_fd.close() 方案三:使用SecureCRT脚本 该方法参见此前的博文:SecureCRT 下 Python 脚本编写 参考文献 Python学习总结 06...paramiko 远程执行命令:https://www.cnblogs.com/wangshuo1/p/6265360.html Python模块学习 - Paramiko:https://www.cnblogs.com

    7.3K20

    用Python远程登陆服务器的最佳实践

    来源 | Python编程时光(ID: Cool-Python) 在使用 Python 写一些脚本的时候,在某些情况下,我们需要频繁登陆远程服务去执行一次命令,并返回一些结果。...使用 subprocess 若是使用 Python 来做这件事,通常我们会第一时间,想到使用 os.popen,os.system,commands,subprocess 等一些命令执行库来间接获取...highlight=ssh)给的一些信息,写的一个demo。 尝试运行后,发现程序会一直在运行中,永远不会返回,不会退出,回调函数也永远不会进入。...你可以通过如下命令去安装它 $ python3 -m pip install paramiko 然后接下来,就介绍几种常用的 ssh 登陆的方法 方法1:基于用户名和密码的 sshclient 方式登录...写在最后 经过了一番对比,和一些实例的展示,可以看出 Paramiko 是一个专业、让人省心的 ssh 利器,个人认为 Paramiko 模块是运维人员必学模块之一,如果你恰好需要在 Python 代码中实现

    2.9K20

    简单的Python脚本,实现ssh登录配置路由器

    简介 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接。...由于使用的是python这样的能够跨平台运行的语言,所以所有python支持的平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持。...安装 pip 安装方式 pip install paramiko 如果没有安装pycrypto,则需要先安装pycrypto库 使用 paramiko提供了多种连接方式,在此我们使用ssh的方式连接交换机并发送命令以实现配置交换机的目的...crypto key generate rsa general-keys modulus 1024 3.配置sssh的信息 会话超时时间 ip ssh time-out 120 最大认证次数 ip...脚本 # import 导入模块 import paramiko import time # 定义三个字符串类型的变量 ip = '192.168.226.138' username = 'shiran

    1.4K10

    Paramiko远程操作Linux服务器

    本篇将介绍一个Python的第三方库Paramiko,使用Paramiko,我们可以在Python脚本中进行SSH连接Linux服务器并远程执行Linux命令。...其实每次搭建环境所用的Linux命令几乎都是相同的,于是我们就可以借助Paramiko,将这些命令编写成Python脚本,进而实现自动搭建测试环境。...: No module named '_cffi_backend' 出现这个错误通常是由于缺少cffi模块导致的,cffi是Paramiko库的一个依赖项,在安装Paramiko时会附带安装。...O操作,并且fork一个新的进程运行脚本文件,导致进行之间上下文切换。...) # 添加等待时间 client.exec_command('tar -zxvf file.tar.gz -C /xxx') 将Paramiko封装成工具类 为了方便在不同的项目中引用,我们可以将Paramiko

    32320
    领券