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

paramiko stdout的输出不正确地传输行

paramiko是一个用于Python的SSH客户端库,它提供了与远程服务器进行安全通信的功能。在使用paramiko时,有时会遇到stdout输出不正确地传输行的问题。

stdout是标准输出流,用于将程序的输出信息显示在终端或其他输出设备上。当使用paramiko执行远程命令并获取stdout时,可能会出现输出信息不正确的情况,即输出的行被截断或混乱。

这个问题通常是由于远程服务器的终端设置不正确导致的。为了解决这个问题,可以尝试以下方法:

  1. 使用invoke_shell()方法代替exec_command()方法:invoke_shell()方法可以创建一个交互式的shell会话,可以更好地处理输出流。示例代码如下:
代码语言:txt
复制
import paramiko

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('hostname', username='username', password='password')

shell = ssh.invoke_shell()
shell.send('command\n')
output = shell.recv(1024)
print(output.decode())

ssh.close()
  1. 修改远程服务器的终端设置:可以通过修改远程服务器的终端设置来解决输出不正确的问题。具体的设置方法因服务器而异,可以参考服务器的文档或联系服务器管理员进行设置。

总结一下,当paramiko的stdout输出不正确地传输行时,可以尝试使用invoke_shell()方法代替exec_command()方法,并且可以修改远程服务器的终端设置来解决问题。

腾讯云提供了云服务器(CVM)产品,可以满足用户的云计算需求。您可以通过以下链接了解腾讯云云服务器的相关信息:腾讯云云服务器

请注意,本回答仅供参考,具体解决方法可能因实际情况而异。

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

相关·内容

python paramiko

())  ssh.connect("某IP地址",22,"用户名", "口令") 上面的第二代码作用是允许连接不在know_hosts文件中主机。...,是记录ssh连接交互时一些信息,可以看做是类似于debug输出,一般情况下不需要开启。...stdout标准输出,在输出内容比较少时,可以通过直接使用read读取出所有的输出;但在输出内容比较多时,建议通过按读取进行处理。不过按读取时,每行结尾会有换行符\n,这样输出结果很不美观。...paramiko模块是基于Python实现ssh远程安全链接,实现命令远程、文件传输、SSH代理等功能。...from_transport方法 from_transport(cls, t) 参数说明: t,一个已通过验证传输对象 例: >>> import paramiko >>> a = paramiko.Transport

1.4K10

python模块paramiko与ssh

利用该模块,可以方便进行ssh连接和sftp协议进行sftp文件传输。 一、安装 paramiko模块依赖PyCrypto模块,而PyCrypto需要GCC库编译,不过一般发行版源里带有该模块。...()) ssh.connect("某IP地址",22,"用户名", "口令") 上面的第二代码作用是允许连接不在know_hosts文件中主机。...如果连接远程主机需要提供密钥,上面第二代码可改成: t.connect(username = "用户名", password = "口令", hostkey="密钥") 三、paramiko ssh...,是记录ssh连接交互时一些信息,可以看做是类似于debug输出,一般情况下不需要开启。...stdout标准输出,在输出内容比较少时,可以通过直接使用read读取出所有的输出;但在输出内容比较多时,建议通过按读取进行处理。不过按读取时,每行结尾会有换行符n,这样输出结果很不美观。

1.5K10
  • paramiko模块

    由于paramiko属于第三方库,所以需要使用如下命令先行安装 pip3 install paramiko 组件 SSHClient作用类似于Linuxssh命令,是对SSH会话封装,该类封装了传输...1.2 exec_command方法 #远程命令执行方法,该命令输入与输出流为标准输入(stdin)、输出(stdout)、错误(stderr)Python文件对像。...()配置,即使~/.ssh/hnown_hosts不存在也产生影响; RejectPolicy,自动拒绝未知主机名和密钥,依赖load_system_host_keys()配置; WarningPolicy...Channel:是一种类Socket,一种安全SSH传输通道; 2....#Python splitlines() 按照('\r', '\r\n', \n')分隔,返回一个包含各行作为元素列表,如果参数 keepends 为(默认值) False,包含换行符,如果为 True

    1.3K21

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

    Paramiko能做什么 paramiko是Python语言写一个库,遵循SSH2协议,支持以加密和认证方式进行远程服务器连接,利用paramiko,可以方便地进行SSH连接服务器和服务器间文件传输...Paramiko几个基础名词: 1. Channel:是一种安全SSH传输通道; 2....() # 自动添加策略,保存服务器主机名和密钥信息,如果添加,那么不再本地know_hosts文件中记录主机将无法连接 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy...exec_command执行命令会返回三个信息: 1、标准输入内容(用于实现交互式命令)--stdin 2、标准输出(保存命令正常执行结果)--stdout 3、标准错误输出(保存命令错误信息)--...:stdin, stdout, stderr (stdout)并decode输出... """ stdin, stdout, stderr = client.exec_command(cmd

    55620

    网络工程师学Python-34-SSH客户端和服务器库Paramiko

    Paramiko是Python一个SSH客户端和服务器库,可以实现SSHv2协议加密和身份验证功能,支持SFTP和SCP协议。...在本文中,我们将介绍如何使用Paramiko库来建立SSH连接、执行远程命令、传输文件等。图片安装Paramiko要使用Paramiko库,我们需要先安装它。...以下是一个简单示例:import paramikossh = paramiko.SSHClient()ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy...exec_command()方法执行ls -l命令,并使用readlines()方法读取输出结果,并打印到控制台。...需要注意是,在某些情况下,需要使用strip()方法删除输出结果中换行符。图片传输文件使用Paramiko传输文件也很简单,只需使用SFTPClient类即可。

    1.3K30

    python paramiko模块使

    一般使用paramiko功能就是通过ssh远程执行命令,远程(上传、下载)传输文件等等 依赖包:/usr/local/python27/bin/pip install pycrypto 下载包 paramiko...\\定义登陆密码 if __name__=='__main__':        \\如果当前模块名称等于启动主模块运行,就执行如下     paramiko.util.log_to_file('paramiko.log...('ifconfig')                     \\执行命令 ifconfig    stdin:标准输入stdout:标准输出 stderr:标准错误     print stdout.read...() \\打印标准输出结果     s.close()            \\关闭链接 从服务器端上传或下载文件 #!...((hostname,port))   \\创建一个传输对象 t.connect(username=username,password=password)  \\建立链接服务器 sftp=paramiko.SFTPClient.from_transport

    43910

    Python远程控制模块paramiko遇到问题及解决记录

    3、下面的曲折、啰嗦解决过程,喜请跳过: 在谷歌搜到一个老外相关提问,虽然他说是 pysftp,其实也是基于 paramiko: https://stackoverflow.com/questions...2、解决办法 将远程脚本标准输出 stdout 重定向到错误输出 stderr 即可,test.py 修改如下: import paramiko client = paramiko.SSHClient...其实原因很简单,因为 stdout(标准输出),输出方式是缓冲。输出字符会先存放在缓冲区,等按下回车键时才进行实际 I/O 操作,导致 paramiko 远程命令产生等待问题。...所以,这里只要将脚本执行标准输出重定向到错误输出(1>&2),然后 paramiko 就可以使用 stderr 快速读取远程打屏信息了。...三、This operation would block forever 报错解决 这次扩容一个基于 pramiko 自动化 apiserver,结果发现在新环境执行远程命令或文件传输时,抛了如下报错

    7.2K80

    网络工程师学Python-31-远程连接管理SSH

    它提供了SSH客户端和服务器实现,以及支持SFTP文件传输和SSH代理实用程序。...然后,它将命令输出打印到控制台,并关闭SSH连接。Fabric图片Fabric是一个基于ParamikoPython库,用于自动化远程系统管理任务。...然后,它将命令输出打印到控制台。Netmiko图片Netmiko是一个用于远程设备管理Python库,包括网络设备和Linux服务器。...它使用Paramiko库实现SSH连接,并提供了一个统一API,用于管理远程设备配置、文件传输、文件操作等。...这些库提供了不同功能和使用场景,可以根据需要选择适合自己工具。无论是远程执行命令、文件传输,还是设备管理,Python SSH都提供了灵活和强大解决方案。

    51030

    借助Paramiko通过Python实现linux远程登陆及sftp操作

    paramiko是一个用于做远程控制模块,使用该模块可以对远程服务器进行命令或文件操作,paramiko是用python语言写一个模块,遵循SSH2协议,支持以加密和认证方式,进行远程服务器连接...对于shell 命令,可以直接使用管道,或者将标准输出重定向到文件方法取得执行结果。 2....这些库获取 output 不仅有标准输出,还包含标准错误信息。所以每次都要对 output 进行数据清理,然后整理格式化,才能得到我们想要数据。...") # 使用这个连接执行命令 ssh_stdin, ssh_stdout, ssh_stderr = ssh.exec_command("ls -l") # 获取输出 print(ssh_stdout.read...().decode()) # 关闭连接 trans.close() sftp 文件传输 import paramiko trans = paramiko.Transport(('xx.xx.xx.xx

    3.6K20

    巧用Python登陆远程服务器

    用Python进行远程登陆服务器 这篇文章介绍如何通过使用Paramiko和SCP Python库自动化远程服务器任务。使用Python来SSH到主机,执行任务,传输文件等。...正确地利用库错误处理需要对“哪里出了问题”进行大量猜测,特别是在某些情况下,比如在一个我们都不会经常搞混小空间中,可能存在许多未知情况。...断开连接 在使用完远程主机后,我们应该关闭与远程主机连接。这样做不一定是灾难性,但是我遇到过一些实例,其中足够挂起连接最终会使端口22入站流量达到最大。...cmd) stdout.channel.recv_exit_status() response = stdout.readlines()...SCPClient()创建一个期望Paramiko进行“传输对象,我们通过self.conn.get_transport()提供了这个对象。

    2.7K20

    Python33 paramiko模块

    ='123qwe') #执行命令 stdin,stdout,stderr = ssh.exec_command('df') ##stdin标准输入:你输入命令,会返还给你 ##stdout标准输出:...你命令执行结果 ##stderr标准错误:在执行过程中出现错误 #获取命令结果 result = stdout.read() ##标准输出,只有在命令正确情况下才会输出,否则返回信息为空。...()只有当命令正常执行后,得到了返回结果才会输出,如果错误的话stdout.read就不会有任何输出结果。...(transport) ##将transport当做参数交给paramiko.SFTPClient.from_transport ##接下来真正传输协议是在SFTPClient中定义(实际交互是通过...我们直接将公钥复制到pycharm中,可以看到有好几个换行符,那么我们就需要往前删除将其变成一。 ? 这回密钥都在一了,就不存在多余换行符了,然后复制当前公钥即可。

    95830

    Python建立SSH连接与使用方法

    图片 paramiko是一个Python实现SSH协议库,可以用来建立SSH连接、传输文件等。你可以在Python环境中使用pipan,所以我们需要安装paramiko。..., stderr = ssh.exec_command('ls -l') print(stdout.read().decode()) ssh.close() 我们执行了一个简单“ls -l”命令,并将输出打印到控制台上...需要注意是,在实际使用中,你可能需要使用SSH隧道和代理来建立安全连接。此时,你需要在paramiko库中使用相应方法和参数来配置SSH隧道和代理。...连接到远程主机后,本地端口将被转发到远程主机上指定端口,从而实现数据隧道传输。 SSH代理操作方式如下: 在本地机器上运行SSH客户端,并指定远程主机IP地址和登录凭据。...在SSH连接中添加代理,指定本地端口和远程主机上端口。 在本地机器上配置代理服务器为SSH代理。 连接到远程主机后,所有网络流量都将通过SSH代理传输

    1.3K10

    python安装需要安装paramiko

    一、介绍 1.最近手头有个脚本用于远程批量传输文件。由于系统本身环境兼容不是很好,所以开始升级配置环境。...())ssh.connect("某IP地址",22,"用户名", "口令") 上面的第二代码作用是允许连接不在know_hosts文件中主机。...方式二: t = paramiko.Transport((“主机”,”端口”))t.connect(username = “用户名”, password = “口令”) 如果连接远程主机需要提供密钥,上面第二代码可改成...: t.connect(username = “用户名”, password = “口令”, hostkey=”密钥”) 下面给出实际例子: 3.1windows对linux运行任意命令,并将结果输出...()) ssh.connect("某IP地址",22,"用户名", "口令") stdin, stdout, stderr = ssh.exec_command("你命令") print stdout.readlines

    1.6K20

    Python学习(九)---- python中线程

    ("top") # 标准输入、标准输出、标准错误 10# 获取命令结果 11stdout_result = stdout.read() 12stderr_result = stderr.read()...() 基于用户名密码连接 传输文件: 1# shell scp 传输文件 2scp -rp -P22 fgf.txt root@192.168.8.140:/tmp/ 3 4import paramiko...# 关闭连接 18ssh.close() 基于公钥密钥连接 传输文件 1import paramiko 2 3private_key = paramiko.RSAKey.from_private_key_file...= MyThread('t1') 11t2 = MyThread('t2') 12 13t1.start() 14t2.start() 上面是一启动线程,那么如果一下启动很多线程呢?...生产者和消费者彼此之间直接通讯,而通过阻塞队列来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者处理能力

    89020

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

    可以直接使用管道,或者将标准输出重定向到文件方法取得执行命令返回结果。...但是据我所知,这些库获取 output 不仅只有标准输出,还包含标准错误(也就是上面那些多余信息) 所以每次都要对 output 进行数据清洗,然后整理格式化,才能得到我们想要数据。...原来 ssh 方法接收一个 _out 参数,这个参数可以为一个字符串,表示文件路径,也可以是一个文件对象(或者类文件对象),还可以是一个回调函数,意思是当有标准输出时,就会调用将输出内容传给这个函数。...("ls -l") # 获取输出 print(ssh_stdout.read()) # 关闭连接 ssh.close() 方法2:基于用户名和密码 transport 方式登录 方法1 是传统连接服务器...实现 sftp 文件传输 同时,paramiko 做为 ssh 完美解决方案,它非常专业,利用它还可以实现 sftp 文件传输

    2.9K20

    解决paramiko执行命令超时问题

    其实上面的两种方案都不可行:方案1,需要优化,下面这种直接调用方式会导致test.sh启动起来 stdin, stdout, stderr = self.client.exec_command(‘...2、解决办法 将远程脚本标准输出stdout重定向到错误输出stderr即可,test.py 修改如下: import paramiko client = paramiko.SSHClient() client...其实原因很简单,因为bash /tmp/test.sh & 虽然是后台执行,但是依然会产生标准输出,一旦产生标准输出paramiko就会认为命令还未执行完成,且stdoutbuffer大于stderr...这里只要将脚本执行标准输出重定向到错误输出(1 &2),然后paramiko就可以使用stderr快速读取远程打屏信息了。...基于上面paramiko原理:有stdout输出,就认为命令没有执行完成。

    3.8K20

    再见Xshell、Xftp!Python执行Linux命令、上传下载远程文件

    命令,如:ls # 输入linux命令 command1 = "ls" ssh.exec_command(command1) # stdout 为正确输出,stderr为错误输出 stdin, stdout..., stderr = ssh.exec_command(command2) # 输出命令执行结果 result = stdout.read() print(result) xshell返回结果: ?...(command2) # 输出命令执行结果 result = stdout.read() print(result) 上面的命令是先执行:cd /www/wwwroot ,进入到wwwroot,再查看里面的文件夹..., stdout, stderr = ssh.exec_command(command) # 输出命令执行结果 result = stdout.read() ## bytes 转 str result...result) result = result.split('\\n') for i in result: print(i) 直接在用;把多条命令隔开即可,转为str后,通过\\n去分割结果,按输出

    2.4K10
    领券