Как запустить скрипт Python3 удаленно через SSH - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь запустить скрипт python3 удаленно через ssh. Прежде всего, я хотел бы знать, возможно ли это, даже если на машине, на которой я пытаюсь запустить скрипт, нет интерпретатора python3 только для 2001 версии python.

А также я использую следующую команду для запуска сценария, но он не работает:

spawn sh -c "ssh -oPort=$port $ip /usr/bin/env < /home/pythonscript

Pythonscript содержит команду, предназначенную для вывода подключенных COM-портов, это следующее:

import serial.tools.list_ports
print([comport.device for comport in serial.tools.list_ports.comport()])

Выходные данные, которые я получаю от этого, представляют собой набор системной информации, относящейся к машине, к которой я подключаюсь, такие как HOSTNAME, USER, MACHTYPE, MAIL, SHELL, OSTYPE

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

Вся помощь оценена

1 Ответ

1 голос
/ 05 июля 2019

Во-первых, вам нужно будет установить python3 на каждом сервере, на котором вы будете его запускать. Вам также нужно будет установить pip3 и установить pyserial. Вы также можете использовать virtualenv, если хотите, но я оставлю это вам.

Найдена небольшая ошибка в этом скрипте. В любом случае, в соответствии с последней версией, это "comports", а не "comport": https://pyserial.readthedocs.io/en/latest/tools.html

Обновленная версия:

from serial.tools.list_ports import comports
print([comport.device for comport in comports()])

Я смог запустить это удаленно, просто выполнив

ssh localhost "python3 /home/user/projects/stack_overflow/56900773_remote_python_ssh/pythonscript.py"

Измените localhost на любой сервер, который вам нужен, и замените мой путь на полный путь к вашему сценарию.

Когда я выполнил эту команду, я просто получил пустой список, возможно потому, что у меня нет компортов:)

...