Добавочный вывод из ткани - PullRequest
0 голосов
/ 15 ноября 2018

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

import fabric
c = fabric.Connection("192.168.8.16") # blocking
result = c.run("long-running-script-outputing-state-information-into-stdout.py")

Есть ли способ прочитать стандартный выводкак это происходит асинхронно вместо использования объекта 'result', который можно использовать только после завершения команды?

1 Ответ

0 голосов
/ 16 ноября 2018

Если вы хотите использовать fabric для удаленного выполнения каких-либо задач, вы в первую очередь должны следовать этой структуре, чтобы установить соединение:

@task(hosts=["servername"])
def do_things(c):
     with connection(host=host, user=user,) as c:
        c.run("long-running-script-outputing-state-information-into-stdout.py")

Это выведет весь вывод независимо от того, что вы делаете!

Вы должны использовать with connection(host=host, user=user,) as c:, чтобы убедиться, что все, что вы запускаете, будет работать в этом контексте соединения!

...