0

SSH接続を行い、paramikoでコマンドを実行する最も簡単な方法を試しています

import paramiko, base64
client = paramiko.SSHClient()
client.load_system_host_keys()
client.connect('10.50.0.150', username='XXXXX', password='XXXXXX')
stdin, stdout, stderr = client.exec_command('show performance -type host-io')
for line in stdout:
    print '... ' + line.strip('\n')
client.close()

- - - - - - エラー - - - - - - - - - - - -

Traceback (most recent call last):
  File "a.py", line 5, in <module>
    stdin, stdout, stderr = client.exec_command('show performance -type host-io')
  File "/usr/lib/python2.6/site-packages/paramiko-1.10.1-py2.6.egg/paramiko/client.py", line 374, in exec_command
    chan.exec_command(command)
  File "/usr/lib/python2.6/site-packages/paramiko-1.10.1-py2.6.egg/paramiko/channel.py", line 218, in exec_command
    self._wait_for_event()
  File "/usr/lib/python2.6/site-packages/paramiko-1.10.1-py2.6.egg/paramiko/channel.py", line 1122, in _wait_for_event
    raise e
EOFError

このコードを実行して、動作するコマンドを別のコンピューターに変更すると、このコマンドは SSH インタラクティブ シェル経由で正常に動作します。

何か案が ?

4

1 に答える 1

1

このコマンドをclient.connect(. . .)使用する必要がある場合

session = client.get_transport().open_session()

を使用しますsession.exec_command(. . .)

于 2015-09-23T16:03:05.327 に答える