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

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

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

  1. 调整连接超时时间:

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

代码语言:python
复制

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
复制

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

代码语言:txt
复制

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

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

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

代码语言:python
复制

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模块paramikossh

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.4K10

pythonparamiko模块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() 感兴趣可以试验下

42420

pythonparamiko模块

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

51030

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.

2.8K10

Python paramiko模块安装

paramikoPython语言编写遵循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.1K10

【说站】python ParamikoSSH用法

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

41510

Python paramiko 模块浅谈与SSH主要功能模拟解析

疫情还没结束,小编只能宅在家里,哪哪也去不了,今天突发奇想给大家分享一篇教程关于Python paramiko 模块浅谈与SSH主要功能模拟解析。...大家都知道,通过SSH服务可以远程连接到Linux服务器,查看上面的日志状态,批量配置远程服务器,文件上传,文件下载等,Pythonparamiko模块同样实现了这一功能。...首先我们需要安装这一模块,pycharm环境中如下操作 一,安装paramiko模块 PyCharm→Preferences→Project:项目名→Project Interpreter ?...print(result.decode()) # 关闭连接 ssh.close() 解析:首先导入模块,然后创建一个SSH对象,然后通过命令连接远程机器,默认端口是22,这里我连接是192.168.199.146...paramiko 模块详解与SSH主要功能模拟文章就介绍到这了,更多相关Python paramiko 模块SSH内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn

2.6K10

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.6K20

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

97910

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.5K20

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

51520

python paramiko

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

1.3K10

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

6.9K20

pythonparamiko模块简介及安装过程

一:简介 paramiko是用python语言写一个模块,遵循SSH2协议,支持以加密和认证方式,进行远程服务器连接。...由于使用python这样能够跨平台运行语言,所以所有python支持平台,如Linux, Solaris, BSD, MacOS X, Windows等,paramiko都可以支持,因此,如果需要使用...SSH从一个平台连接到另外一个平台,进行一系列操作时,paramiko是最佳工具之一。...通常安装标准python模块,只需要在模块根目录下运行python setup.py build python setup.py install 备注:安装前先检查是否安装gcc(yum...install安装 到此这篇关于pythonparamiko模块简介及安装过程文章就介绍到这了,更多相关python paramiko模块安装内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持

1.5K30
领券