相关疑难解决方法(0)

Paramiko频道在阅读大量输出时卡住了

我有一个代码,我在远程Linux机器上执行命令并使用Paramiko读取输出.代码def看起来像这样:

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(IPAddress, username=user['username'], password=user['password'])


chan = self.ssh.get_transport().open_session()

chan.settimeout(10800)

try:
    # Execute thecommand
    chan.exec_command(cmd)

    contents = StringIO.StringIO()

    data = chan.recv(1024)

    # Capturing data from chan buffer.
    while data:
        contents.write(data)
        data = chan.recv(1024)

except socket.timeout:
    raise socket.timeout


output = contents.getvalue()

return output,chan.recv_stderr(600),chan.recv_exit_status()
Run Code Online (Sandbox Code Playgroud)

上面的代码适用于小输出,但它适用于较大的输出.

这里有缓冲相关的问题吗?

python paramiko

9
推荐指数
2
解决办法
2万
查看次数

Paramiko连续stdout

我使用Paramiko向远程Linux服务器运行一些ssh命令.这些命令将在控制台中连续输出,我想在本地控制台窗口中打印这些所有信息.

stdin, stdout, stderr = ssh.client.exec_command("ls")
for line in stdout.read()
    print line,
ssh.client.close()
Run Code Online (Sandbox Code Playgroud)

因此,如果我编写这样的代码,所有输出信息将被发送回给我,直到命令完成执行,而我想在live中打印输出.

非常感谢.

python ssh paramiko

5
推荐指数
1
解决办法
7309
查看次数

标签 统计

paramiko ×2

python ×2

ssh ×1