Python 如何使用paramiko SSHClient获得连续输出
我想要ssh到远程服务器并运行一些shell脚本(如scp或yum等) 一切都进行得很顺利,只是我无法持续获得scp进度或yum下载进度之类的信息。Python 如何使用paramiko SSHClient获得连续输出,python,python-2.7,ssh,paramiko,Python,Python 2.7,Ssh,Paramiko,我想要ssh到远程服务器并运行一些shell脚本(如scp或yum等) 一切都进行得很顺利,只是我无法持续获得scp进度或yum下载进度之类的信息。f.read将被阻止,不会返回任何内容 我猜paramiko可能会逐行传输假标准输出流,但这些渐进输出不是输出行分隔符,而是'\r' 有没有办法解决这个问题 下面是我现在所做的,其中ssh是paramiko.SSHClient() stdout.read(N)仅在读取了N个字节或获得EOF时返回。只要有新数据可用,stdout.channel.rec
f.read
将被阻止,不会返回任何内容
我猜paramiko可能会逐行传输假标准输出流,但这些渐进输出不是输出行分隔符,而是'\r'
有没有办法解决这个问题
下面是我现在所做的,其中ssh
是paramiko.SSHClient()
stdout.read(N)
仅在读取了N个字节或获得EOF时返回。只要有新数据可用,stdout.channel.recv(N)
就会返回
这对我来说很好:
stdin, stdout, sterr = ssh.exec_command(cmd, get_pty=True)
while True:
v = stdout.channel.recv(1024)
if not v:
break
sys.stdout.write(v)
sys.stdout.flush()
stdout.read(N)
仅在读取了N个字节或获得EOF时返回。只要有新数据可用,stdout.channel.recv(N)
就会返回
这对我来说很好:
stdin, stdout, sterr = ssh.exec_command(cmd, get_pty=True)
while True:
v = stdout.channel.recv(1024)
if not v:
break
sys.stdout.write(v)
sys.stdout.flush()