[Ошибка] - PullRequest
       23

[Ошибка]

0 голосов
/ 31 января 2019

Мое требование - подключиться к какому-либо сеансу с использованием прокси и выполнить некоторую команду в этом сеансе.Я написал Python-код для подключения SSH вместе с прокси-подключением, он работает нормально.После подключения мы выполняем команду.Когда мы выполнили команду df, она работает нормально и показывает результат.Но когда выполняется какая-то команда, связанная с проектом bch -c 142717 -M sim -S 2019-02-01:00:00:00, она не работает.

Когда мы выполнили команду, упомянутую выше, она имеет очень длинный вывод с несколькими страницами.Но вручную, когда мы выполнили вышеупомянутую команду в сеансе, она работает нормально.

import subprocess
import openpyxl
import os
import paramiko
import socks
import datetime
import sys
import time

#reload(sys)
#sys.setdefaultencoding('utf8')

ssh = ""
# sftp_client = none

host='10.64.167.69'
port=22
username='bscs1'
password='3ricss0n'
proxyHost='127.0.0.1'
proxyPort='1080'


    def CL_Open_SSHConnection_With_Proxy(host, port, username, password, proxyHost, proxyPort):

        port = int(port)
        proxyPort = int(proxyPort)
        socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, proxyHost, proxyPort, False)
        paramiko.client.socket.socket = socks.socksocket
        SERVER_ENCODING = "utf-8"
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh.connect(hostname=host, port=port, username=username, password=password)
        chan = ssh.invoke_shell()
        chan.settimeout(0)
        print "Server Connected"
        socks.setdefaultproxy()
        print ssh
        return ssh

    def CL_execute_comand(con, sshcmd):

        print "CL_execute_comand"
        print con
        stdin, stdout, stderr = con.exec_command(sshcmd)
        print 'executed'
        print stdout
        opt = stdout.readlines()
        opt = "".join(opt)
        print(opt)

def CL_Close_Connection(ssh1):
    time.sleep(5)
    ssh1.close()

sshcmd = 'bch -c 142717 -M sim -S 2019-02-01:00:00:00'

variable = CL_Open_SSHConnection_With_Proxy(host, port, username, password, proxyHost, proxyPort)
variable2 = CL_execute_comand(variable, sshcmd)
print variable2
CL_Close_Connection(variable)

вывод:

<paramiko.ChannelFile from <paramiko.Channel 1 (closed) -> <paramiko.Transport at 0x2b27f28L (cipher aes128-ctr, 128 bits) (active; 0 open channel(s))>>>
...