Выполнение нескольких команд Linux через Paramiko, но не удается получить выходные данные - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь подключиться к удаленному серверу и выполнить серию команд Linux.Я могу добиться этого, используя следующий код, но не могу сохранить результаты этих команд Linux

print(stdout.read()) ничего не показывает.

import sys
import paramiko as pm
sys.stderr = sys.__stderr__
import os
class AllowAllKeys(pm.MissingHostKeyPolicy):
    def missing_host_key(self, client, hostname, key):
        return

HOST = ''
USER = ''
PASSWORD = ''
client = pm.SSHClient()
client.set_missing_host_key_policy(pm.AutoAddPolicy())
client.connect(HOST, username=USER, password=PASSWORD)

channel = client.invoke_shell()
stdin = channel.makefile('wb')
stdout = channel.makefile('rb')

try:
    stdin.write('''
    cd /tmp
    mkdir aveksatest
    cd aveksatest
    mkdir packagestest
    mkdir stagingtest
    mv /packagesfolder /tmp/aveksatest
    ''')
    print("Successfully created packages & staging directories")
except:
    print("Error!!")
try:
    stdin.write('''
    cd /tmp/aveksa/packages
    tar -jtvf asmlib-008_x64.tar.bz2
    tar -jtvf aveksa-7.1.0.tar.bz2
    tar -jtvf AveksaAgent-7.1.0.tar.bz2
    tar -jtvf openjdk18_v002.tar.bz2
    ''')
    print("Successfully made test2")
    print (stdout.read())
except:
    print("Error while test2!!")        

stdout.close()
stdin.close()
client.close()

Ожидаемый вывод:

-rw-r--r-- oracle/oinstall 136337 2014-04-15 00:13 oracleasm-2.6.18-128.1.10.el5                                 -2.0.5-1.el5.x86_64.rpm
-rw-r--r-- oracle/oinstall 136083 2014-04-15 00:13 oracleasm-2.6.18-128.1.14.el5                                 -2.0.5-1.el5.x86_64.rpm

Но фактический вывод:

Successfully created packages & staging directories
Successfully made test2
...