2012-06-27 80 views
0

我有一个小脚本来执行设备中的命令。我没有在stdout中获得命令的输出,而是在登录到设备后,在命令提示符之前打印所有这些内容。Paramiko SSH输出不捕获命令输出

import paramiko, 
client = paramiko.SSHClient() 
client.load_system_host_keys() 
client.connect('10.88.124.88', username='admin',password='testing',timeout=15.0) 
print "Connected...\n" 
print "Executing show version...\n" 
stdin, stdout, stderr = client.exec_command("show version") 
print "AFTER Executing show version...\n" 
stdin.channel.shutdown_write() 
print "BEFORE Reading output...\n" 
output = stdout.read() 
print "AFTER Reading output...\n" 
print "OUTPUT:: '", output, "'" 
print "Execting quit...\n" 
stdin, stdout, stderr = client.exec_command("quit\n") 

我从脚本获得的输出,如下图所示。我期待在输出中输出“show version”。不知道我失踪的地方。该设备的响应速度有点慢。

[[email protected] ~]# ./ssh-bana.py 
Connected... 
... 
OUTPUT:: ' Command Line Interface is starting up, please wait ... 
verifying connection to main ([email protected])... success 
verifying connection to secondary ([email protected])... success 

    Welcome to the TelePresence Command Line Interface (version 1.1) 

Last login: Wed Jun 27 14:45:21 CDT 2012 from 10.88.139.44 

admin: ' 
Execting quit... 

回答

1

添加你执行show version命令之后:

print "".join(stdout.readlines())