Python — подключиться к удаленному хосту из сценария tkinter

Я пишу скрипт tkinter, который принимает команду linux из пользовательского интерфейса. После нажатия кнопки отправки я хочу запустить эту команду, которую я получил из пользовательского интерфейса на удаленном сервере Linux, и собрать вывод и отобразить в окне Tkinter.

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

в небольшом исследовании Google наиболее распространенным решением, которое я видел, было использование ткани, как показано здесь в этом link Другие решения, которые я видел, заключались в использовании plink и popen.

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

Любая помощь в этом будет оценена! заранее спасибо


person Vasanth Nag K V    schedule 19.10.2015    source источник


Ответы (2)


Итак, я нашел решение, которое искал ... может быть, я не читал документы, которые я просматривал раньше, должным образом ... вот его

def connect():
    print "starting to connect"
    env.host_string = '[email protected]'
    env.password = "vpnuser "
    run("ls -lrth")

поместите это в файл fabfile.py и запустите его следующим образом fab -a connect

Вот оно!

person Vasanth Nag K V    schedule 19.10.2015

Вы хотите использовать host_string для динамического является. Измените его перед выполнением команд.

Примером может быть:

from fabric.api import run, env

env.host_string = '[email protected]'

def ls():
    run("ls")
person Reut Sharabani    schedule 19.10.2015
comment
Привет Реут! не могли бы показать мне короткий пример? также, где указать пароль удаленного сервера, к которому я собираюсь подключиться ... это то, что специально задано в моем вопросе;) - person Vasanth Nag K V; 19.10.2015