Я настраиваю удаленное SSH-соединение на удаленный сервер и запускаю определенную команду для сброса таблицы DB. Удаленный сервер - это упрочненная ОС Linux с собственной оболочкой. Я запускаю команду удаленного sql-типа для выгрузки большого количества данных. Мой скрипт python использует интерактивную сессию SSH для этого. Как вы можете видеть ниже, я запускаю команду, позволяя ей спать в течение 5 секунд, а затем сбросить буфер. Я пробовал много разных опций для функции «remote_conn.recv()», но я не могу получить полный вывод. Выход очень большой, и он выгружается (нажмите пробел для увеличения). Я даже не получаю полный вывод первой страницы. Если на первой странице 50 строк, я получаю только первые 4.Python Paramiko get full output
Есть ли лучшие способы сделать это? Как я могу просто получить полный выход? Ниже приведена часть Paramiko моего скрипта.
# Create instance of SSHClient object
remote_conn_pre = paramiko.SSHClient()
# Automatically add untrusted hosts
remote_conn_pre.set_missing_host_key_policy(
paramiko.AutoAddPolicy())
# initiate SSH connection
remote_conn_pre.connect(options.ip, username=options.userName, password=options.password)
# Use invoke_shell to establish an 'interactive session'
remote_conn = remote_conn_pre.invoke_shell()
remote_conn.send("<remote sql command here>")
time.sleep(5)
output = remote_conn.recv(65535)
print output
remote_conn.close()
Почему вы не используете SQL-клиент direclty? – Maresh
ОС - это упрочненный Linux с собственной оболочкой. Я должен запускать свои собственные команды из CLI. Это не стандартный вызов SQL, и вы не можете получить к нему доступ удаленно, иначе я бы пошел по этому маршруту. – hiddenicon
Разрешен ли SCP на этой машине? – Maresh