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

Python paramiko脚本,在exec_command()期间读取输出的问题

关于Python paramiko脚本在exec_command()期间读取输出的问题,我们可以从以下几个方面进行解答:

  1. paramiko是一个用于SSH连接的Python库,可以用于远程执行命令、传输文件等操作。import paramiko ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect('hostname', port=22, username='username', password='password') channel = ssh.exec_command('command') stdout = channel.recv(1024) while stdout.channel.recv_ready(): stdout += channel.recv(1024) stderr = channel.recv_stderr(1024) while stderr.channel.recv_stderr_ready(): stderr += channel.recv_stderr(1024) exit_status = channel.recv_exit_status() ssh.close() print('Output:', stdout.decode()) print('Error:', stderr.decode()) print('Exit status:', exit_status)
  2. exec_command()是paramiko中用于执行命令的方法,它返回一个Channel对象,可以通过该对象的recv()方法读取命令执行的输出。
  3. 在使用exec_command()期间读取输出时,需要注意以下几点:
    • 使用recv_exit_status()方法获取命令执行的退出状态码。
    • 使用recv_ready()方法判断是否有数据可读。
    • 使用recv(n)方法读取n个字节的数据,如果n为None则读取所有可用数据。
    • 使用decode()方法将读取到的字节数据转换为字符串。
  4. 示例代码如下:
  5. 在使用paramiko时,需要注意安全性问题,避免泄露敏感信息或被攻击。

推荐的腾讯云相关产品:

  • 腾讯云服务器:提供云服务器服务,可以搭建SSH服务器。
  • 腾讯云API网关:提供API管理服务,可以对API请求进行处理和限制。
  • 腾讯云对象存储:提供云存储服务,可以存储和管理文件。

产品介绍链接地址:

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

相关·内容

通过python 执行 nohup 不生效解决

通过paramiko模块ssh登录linux,然后用exec_command方法执行带有nohupshell命令不生效,python脚本如下: import paramiko import time...,这可能是因为exec_command执行完之后立刻关闭通道原因,换用invoke_shell可以正常运行: import paramiko import time ssh = paramiko.SSHClient...补充知识:paramiko远程服务器nohup阻塞问题 一、需求描述: 需要来回切换多台服务器(脚本命令不太熟),就用了pythonparamiko模块进行远程连接服务器,控制程序停止和启动。...安装:pip install paramiko 二、问题描述: import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts...三、解决方法 import paramiko # 创建SSH对象 ssh = paramiko.SSHClient() # 允许连接不在know_hosts文件中主机 ssh.set_missing_host_key_policy

3.2K10
  • python学习-paramiko简单使

    paramiko是基于python实现ssh2远程安全连接,支持认证及密钥方式。可以实现远程命令执行,文件传输、中间ssh代理等功能。...():用于远程执行命令,该命令输入与输出流为标准输入、标出输出、标准错误输出 参数: command 执行命令 bufsize=-1 文件缓冲区大小 timeout=None 设置超时时间 get_pty...即新建立ssh连接时不需要再输入yes或no进行确认 WarningPolicy 用于记录一个未知主机密钥python警告。...) 服务器上创建目录 remove() 服务器上删除目录 rename() 服务器上重命名目录 stat() 查看服务器文件状态 listdir() 列出服务器目录下文件 使用ssh运行命令.../usr/bin/env python #coding=utf-8  import paramiko      hostname='172.31.101.61'  username='root'  password

    54510

    Paramiko远程操作Linux服务器

    本篇将介绍一个Python第三方库Paramiko,使用Paramiko,我们可以Python脚本中进行SSH连接Linux服务器并远程执行Linux命令。...「测试打工人如何学习」一文中说过,职场打工人学习技能和工具很大原因是为了解决工作中遇到某些具体问题,我们学习Paramiko当然也是为了解决某些问题。...其实每次搭建环境所用Linux命令几乎都是相同,于是我们就可以借助Paramiko,将这些命令编写成Python脚本,进而实现自动搭建测试环境。...='服务器地址', port='端口', username='用户名', password='密码') # 执行远程命令 # 使用exec_command()方法执行远程命令,并使用stdout对象获取命令输出...使用wget命令下载文件时文件为0KB 刚开始使用wget http://XXX/file.tar.gz下载文件时发现下载下来文件为0KB,原因是执行wget命令时,Python脚本挂起,解决方案就是

    28620

    websocket+Django+python+paramiko实现web页面执行命令并实时输出

    一、概述 WebSocket WebSocket工作流程:浏览器通过JavaScript向服务端发出建立WebSocket连接请求,WebSocket连接建立成功后,客户端和服务端就可以通过 TCP...paramiko paramiko模块,基于SSH用于连接远程服务器并执行相关操作。 shell脚本 /opt/test.sh #!...循环发送消息给前端页面                 while True:                     nextline = stdout.readline().strip()  # 读取脚本输出内容...https://github.com/py3study/wdpy 本文参考链接: https://blog.csdn.net/linxi7/article/details/76161584 注意:这篇文章效果并不是实时输出...那么因此,我在他代码基础上,做了一些改进!才实现 实时输出效果!

    3.2K61

    python paramiko

    ,觉得很麻烦,虽然有WinSCP,找了一下资料,发现paramiko可以实现自动上传文件功能,可惜是,折腾了半天,Python3.3下没有成功,最后退而求其次安装了2.7才弄好,记录如下: 1.下载安装...C:\Python27\python setup.sh install 5.确认安装成功 cmd中执行C:\Python27\python进入python环境 输入import paramiko无错误提示则表示安装成功...注意这里可能会引起歧义,这里交互并不是ssh连接过程中出现让输入 yes交互,因为paramiko模块连接过程中会自动处理好yes确认。...stdout标准输出输出内容比较少时,可以通过直接使用read读取出所有的输出;但在输出内容比较多时,建议通过按行读取进行处理。不过按行读取时,每行结尾会有换行符\n,这样输出结果很不美观。...github项目上demo里获取。

    1.4K10

    更优雅地远程操作服务器:Paramiko实践

    测试环境搭建、代码部署、问题定位日志查询这些都离不开操作服务器。我们操作服务步骤一般是登录服务器,然后切到对应日志目录下,通过grep/tail方式查询我们想要日志。...因此本文介绍一个高效PythonParamiko,帮助大家开发自己日志查询工具。...Paramiko能做什么 paramikoPython语言写一个库,遵循SSH2协议,支持以加密和认证方式进行远程服务器连接,利用paramiko,可以方便地进行SSH连接服务器和服务器间文件传输...执行命令会返回三个信息: 1、标准输入内容(用于实现交互式命令)--stdin 2、标准输出(保存命令正常执行结果)--stdout 3、标准错误输出(保存命令错误信息)--stderr #定义函数...() 3.上传下载 就像我们使用xshell服务器上执行指令查询日志一样,我们也可以像xftp服务器上上传下载文件。

    55420

    db file scattered read等待事件

    这个专题将介绍如何使用Python监控linux/Unix服务器性能指标 上节我们讲了如何安装paramiko,这节我们讲如何使用paramiko连接服务器 环境设置 Linux系统为 Centos...6.8 Python环境为 Python 3.6 连接Unix类服务器模块: paramiko 使用paramiko连接linux服务器 获取CPU使用率程序 如下程序使用paramiko连接linux...服务器然后获取其CPU使用率,具体使用方法请看注释 def getlinuxcpu(ssh): result=[] #这里我们使用sar命令来获取CPU使用率 #exec_command...可有三个变量可使用 #stdin代表标准输入 #stdout为标准输出,即命令输出结果 #stderr为错误输出,即执行该命令错误信息 stdin,stdout,stderr...Python获取Linux服务器CPU使用率 下节讲解如何获取内存使用率

    59020

    Pythonparamiko 模块

    paramiko模块是用python语言写一个模块,遵循SSH2协议,支持以加密和认证方式,进行远程服务器连接 1.安装 #paramiko模块安装需要先安装PyCrypto模块 wget https...s.connect(hostname=IP,username=USER,password=PASSWORD) #连接到远程主机 s.exec_command() #远程主机上执行命令 exec_command...(self, command, bufsize=-1, timeout=None, get_pty=False) #作为paramiko.SSHClient()方法,该方法用于ssh服务器上执行命令...,命令执行输入,输出流作为python类文件对象返回,命令执行返回是一个元组, 所以查看命令执行输出,常用方法如下: stdin, stdout, stderr = s.exec_command...('ls') print stdout.readlines() 简单同时多台主机上执行相同指令: [root@zhu ~]# .

    65220

    paramiko模块

    介绍 ssh是一个协议,OpenSSH是其中一个开源实现,paramikoPython一个库,实现了SSHv2协议(底层使用cryptography)。...有了Paramiko以后,我们就可以Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对远程服务器进行操作。...1.2 exec_command方法 #远程命令执行方法,该命令输入与输出流为标准输入(stdin)、输出(stdout)、错误(stderr)Python文件对像。...如果在“hnown_hosts”中没有保存相关信息,SSHClient 默认行为是拒绝连接。如果是工作系统反反复复安装实验环境中时,这将变得无比烦人。...使用它地方,当前umask值首先被屏蔽掉。 remove,删除SFTP服务端指定目录,如sftp.remove("/home/userdir")。

    1.3K21

    python paramiko模块讲解

    Windows下有很多非常好SSH客户端,比如Putty。Python世界里,你可以使用原始套接字和一些加密函数创建自己SSH客户端或服务端,但如果有现成模块,为什么还要自己实现呢。...使用Paramiko库中PyCrypto能够让你轻松使用SSH2协议。 Paramiko安装方法网上有很多这样帖子,这里就不描述了。这里主要讲如何使用它。...具体请参考Paramiko库文档:http://docs.paramiko.org/en/2.0/index.html 下面给出几个常用使用案例: SSH客户端实现方案一,执行远程命令 这个方案直接使用...SSHClient对象exec_command()服务端执行命令,下面是具体代码:  #实例化SSHClient     client = paramiko.SSHClient()    #自动添加策略...Transport对象, 以Transport对象exec_command()服务端执行命令,下面是具体代码: #实例化SSHClientclient = paramiko.SSHClient()

    2K10

    原来Python是这样连接远程主机,你会吗?

    仔细端详之后,决定卸载当前版本paramiko2.7.1,然后重新安装一下,发现有新版本paramiko2.7.2,还真就解决问题了。...pip uninstall paramiko #先卸载原来安装 pip install paramiko #再重新安装一下,问题搞定 解决办法2: 在这个ssh.connect(...)里面加入...是Python一个库,实现了SSHv2协议(底层使用cryptography)。...有了Paramiko以后,我们就可以Python代码中直接使用SSH协议对远程服务器执行操作,而不是通过ssh命令对远程服务器进行操作。下面主要介绍一下Paramiko一些相关概念。...此为默认选项 (3) exec_command():远程服务器执行Linux命令方法。 在这里插入图片描述 (4) open_sftp():在当前ssh会话基础上创建一个sftp会话。

    1.9K40
    领券