Putty (plink) - запуск Python на удаленном сервере Linux

У меня есть сервер Ubuntu, в котором есть скрипт Python, который запускает интерфейс терминала на основе команд. Я использую Plink для входа в систему и немедленно выполнить скрипт Python:

plink.exe -ssh -l goomuckel -pw greenpepper#7 192.168.1.201 "python server.py"

Тем не менее, я получаю следующее сообщение:

TERM environment variable not set.

Поэтому я создал скрипт sh (server.sh) на компьютере с Ubuntu:

export TERM=xterm
python server.py

Используя следующую команду plink:

plink.exe -ssh -l goomuckel -pw greenpepper#7 192.168.1.201 "sh server.sh"

Теперь я больше не получаю предупреждения, кажется, что скрипт python выполняется. Но вместо отображения интерфейса терминала, который я печатаю в скрипте python, печатаются только следующие символы:

←[H←[2J

Странно то, что при входе в систему вручную с помощью Putty и выполнении скрипта Python все работает нормально. Я попытался добавить флаг -t к plink, а затем скрипт выполняется. Однако я использую цвета для печати конечного текста, и цвета печатаются как текст, а не меняют цвета текста, как это отмечено в Putty.

Есть идеи, что я могу сделать?

2 ответа

Решение

Вам не нужно делать это в скрипте Python.

Вы можете просто изменить .profile -это файл, который система будет выполнять при каждом входе в систему - с тем же выражением, которое вы используете в скрипте Python

export TERM=xterm

(если вы используете Bash)

setnv TERM xterm

(для c-shell и аналогичных)

У меня была та же проблема и установка переменной TERM до того, как команда устранила эту переменную среды TERM. сообщение об ошибке:

plink.exe -ssh -l goomuckel -pw greenpepper#7 192.168.1.201 "export TERM=xterm; python server.py"

Это удобно, если вы не можете изменить файл .profile...

Другие вопросы по тегам