Python - Свържете се с отдалечен хост от tkinter Script

Пиша скрипт 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