0

デバイスでコマンドを実行するための小さなスクリプトがあります。コマンドの出力を 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...
4

1 に答える 1

1

show version コマンドを実行した直後に追加します。

    print "".join(stdout.readlines()) 
于 2013-06-02T10:27:36.430 に答える