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...