我有一个小脚本来执行设备中的命令。我没有在stdout中获取命令的输出,而是在登录到设备之后,在命令提示符之前获取所有打印的内容。
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”。不知道我错过了哪里。设备的响应有点慢。
[root@dev-s2-3m7-aio-139-44 ~]# ./ssh-bana.py
Connected...
...
OUTPUT:: ' Command Line Interface is starting up, please wait ...
verifying connection to main (admin@192.168.0.2)... success
verifying connection to secondary (admin@192.168.1.2)... 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...
答案 0 :(得分:1)
执行show version命令后立即添加:
print "".join(stdout.readlines())