Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 帕拉米科海峡的清洁recv_Python_Ssh_Paramiko - Fatal编程技术网

Python 帕拉米科海峡的清洁recv

Python 帕拉米科海峡的清洁recv,python,ssh,paramiko,Python,Ssh,Paramiko,我想建立SSH会话,运行第一个命令块,然后运行第二个命令块,但我只需要捕获第二个命令块的输出。 如何以更干净和正确的方式清洁paramiko中的recv缓冲区? 现在我重新建立了SSH会话,但在我看来它既丑陋又愚蠢 client=paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect('10.10.10.50', username='admin', pass

我想建立SSH会话,运行第一个命令块,然后运行第二个命令块,但我只需要捕获第二个命令块的输出。 如何以更干净和正确的方式清洁paramiko中的recv缓冲区? 现在我重新建立了SSH会话,但在我看来它既丑陋又愚蠢

client=paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

client.connect('10.10.10.50', username='admin', password='admin')
x=client.invoke_shell()
x.send('en')
x.send('\n')
x.send('conf t')
x.send('\n')
x.send('hostname 11')
x.send('\n')
x.send('exit')
x.send('\n')
x.close()
time.sleep(1)
client.connect('10.10.10.50', username='admin', password='admin')
x=client.invoke_shell()
x.send('sh users\n')
time.sleep(1)
output=x.recv(65535)
print output

提前谢谢

在评论中解决:

在发送第二个数据块之前,如何从通道中接收所有可用数据whjm


是的,很有效,谢谢pnd


您可以在下面的代码中尝试在“x.send('sh users\n')之前清除缓冲区


recv()
ing在
send()
ing第二个数据块之前从频道中读取所有可用数据如何?是的,它工作正常,谢谢!
while not x.recv_ready():
    time.sleep(10)
output = x.recv(65535).decode("utf-8")